前言
不知道說啥好,直接開始吧
一、Windows內網滲透之本地提權信息收集
攻擊機:win10,192.168.100.107
靶機:Win7,192.168.100.93
工具:lcx、NATbypass(免殺)、porttran
1、先給靶機192.168.100.90送上一句話木馬,然后用win10拿菜刀砍它
2、Ok連上了,去試試打開虛擬機終端
3、好像不行,莫得辦法,那我們就自己傳一個cmd文件上去,這個文件本機就有,在C:\Windows\System32里就有現成的,但要注意一點,傳上去的cmd必須是從與靶機同一系統版本的機子上扒下來的,不然可能沒法用
4、ok,傳了個cmd上去,這里也有要注意的,上傳的cmd可能沒法執行,那我們就要找到一個可讀可寫的路徑,這種路徑一般都跟temp和recycle字眼相關,此外大馬也有檢索可讀可寫路徑的功能
可讀可寫路徑:
c:\windows\temp\
%temp%\
c:\recycler\
c:\$Recycle.Bin\
d:\$Recycle.Bin
5、開搞開搞,進去之后自動有一條命令netstat -an | find "ESTABLISHED",這個是獲取tcp連接的,可以敲一敲,然后我們就可以做一些信息收集,whoami看看自己是誰,然后用systeminfo看看詳細信息,ver看看系統版本,net start查看自啟動服務,tasklist看看進程里有沒有什么奇奇怪怪的殺軟,netstat -ano看看端口,netstat -r看看路由,然后我們可以用wmic qfe看看裝了什么補丁(如果裝的最新補丁是20年8月的,那就可以弄8月之后的exp提權)、最近一次安裝是啥時候(也可以用wmic qfe get Caption,Description,HotFixID,InstalledOn 專項查看)等等
6.實在找不到還可以用dir /a “c:\program files (x86)” 和dir /a “c:\program files” 看看靶機里都裝了啥,/a是查看所有,如果文件名有空格需要用雙引號包裹起來,不然會報錯。
7、wmic /NAMESPACE:"\\root\CIMV2" PATH Win32_Product get name,這條命令也可以直接看出系統安裝了啥,因為運行會有點卡,所以可以直接重定向到一個txt中閱讀
二、Windows內網滲透之提權方法選擇
1、如果拿到webshell發現靶機在內網中是沒法進行遠程溢出和遠程代碼執行的,此時我們先端口轉發,再折騰
2、提權手法:
①遠程溢出(遠程代碼執行)——MS08067、MS17010永恆之藍、CVE-2017-7494 Samba遠程代碼執行漏洞
②拿服務器文件密碼
③第三方高權限應用提權——mysql、sql server、oracle
④本地溢出
⑤系統錯誤配置——apache+Windows
⑥DLL劫持漏洞(不常用)
三、exploit的尋找和下載
1、github——搜索exploit集合或cve
https://github.com/SecWiki/windows-kernel-exploits
https://github.com/SecWiki/linux-kernel-exploits
2、google——可以用谷歌hacking語句
3、關注國內外的安全研究員的大牛——cnblogs的k8gege等等
4、國內的安全社區——tools、quansec
5、安全門戶——freebuf、安全客
6、一些小圈子
7、msf——輸入search exploit/windows/local查看
四、本地溢出提權
1、去github逛逛,這個exp號稱通殺Windows一切版本,我的靶機一個補丁都莫得,那豈不是亂殺,整一個試試
2、啊這,,啥情況呀,居然失敗了,我整了一下午換了四台虛擬機還是不行,孩子都自閉了
3、上來就是一頓社會的毒打,老老實實整一個cve-2018-8120試試,0708就交由以后翻筆記的自己繼續搗鼓吧
4、成了,總之這個exp提權,就是先用命令(systeminfo等)查看版本和補丁號,看看最近一次打的補丁是啥時候,然后就找最新的提權exp從頭到尾擼一遍就行,總有會成功的,提權這玩意是有概率失敗的
五、提權的一些小細節
1、可以通過setp命令設置我們上傳的cmd.exe為默認,例如setp E:\www\cmd.exe
2、二進制文件的后綴可任意修改
3、aspx比asp權限大
4、可以用大馬查找可讀可寫的目錄、檢測補丁
5、webshell可以去github上直接搜索,但最好不要整到物理機上
六、端口轉發
1、exp利用成功后想登陸目標或者連接某個端口(如1433)失敗時,我們可以利用端口轉發將特定端口轉發到公網
2、先想辦法把提權后建立的賬號弄進管理組
3、這里查看一下有沒有開3389,開了,但我非要關一下,注意命令有兩個雙引號需要用反斜杠\轉義一下,因為我們的提權exp在外面已經用一個雙引號包裹這條命令了
取消3389命令:REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 11111111 /f
圖片中輸入的命令:CVE-2018-8120.rocky "REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal\" \"Server /v fDenyTSConnections /t REG_DWORD /d 11111111 /f"
4、接下來懂的都懂,用命令開一下3389,哎,我就是玩兒。但是中間差點玩脫了hhhh
添加3389命令:REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
圖片中輸入的命令:CVE-2018-8120.rocky "REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal\" \"Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f"
5、接着win+r,然后用mstsc命令打開遠程連接,用對方ip:端口號,的形式嘗試連一下
6、啊這,劇本不對啊,沒事我們就當作沒連接上,無事發生,要做好連不上的准備對吧,繼續繼續
7、接下來去GitHub整一個lcx放到菜刀里,無論權限高低都可以使用。其實這里使用方法直接給出來了,琢磨琢磨就懂了
8、那slave和listen用哪個呢,slave嘛,懂的都懂,那肯定是我們要控制的對象咯,所以應該在靶機上執行(這里就是通過菜刀)slave命令;而remote指的是我們,local指的是靶機。(這里重啟之后IP變了,靶機100.93變為100.92;vps的100.107變為100.108)
9、用mstsc命令遠程連接,但是這里我遇到兩個問題,第一是菜刀上使用lcx的slave命令時經常無響應,換了幾個虛擬機和lcx還是不行;第二是遠程桌面連接轉發出來的端口不知道為啥,一直出現內部錯誤的告警,隨后我換了porttran還是不行
10、各種嘗試折騰了一早上可以遠程連接了,神奇了,但是菜刀那個無響應還是沒解決,其實這個遠程桌面連接也還是不太穩定,成功率大概一半吧