我爱电脑技术论坛's Archiver

tianshiren 发表于 2008-6-26 18:01

入侵渗透思路(四)

SNMP工具,snmputil.exe  $dRg(|5C1p%~7S\2A

q No v O 例如:  
9{a7?r e:e"[ ^ o0p^(]
1,或者网络接口数目:  
"h4dqc7O #QVQ2e O
c:\snmputil get localhost public .1.3.6.1.2.1.2.1.0  
"s|+_0vXOnl+Y
-u&f\%Gi j:y5? 2,显示所有的SNMP变量内容  (Rlo3jo al
9n:~)E:P?\s)mp
c:\snmputil walk localhost public .1.3  
*v8y%G/qOI6R 9hSN\.|9{7F T
2UNIX类系统的查点技术  
7B7~$G4u%v9z3o)` F{_8Q\X6P |
1,$showmount -e [url]www.target.com[/url] //前提2049号端口开着(NFS)  
7e5CBg1W:B7fS,O8y
9fh&I&Tfj1n 2,$finger @www.target.com //还有rusers   a$\J/iY

;`.d5R k ]S dQ 3, $telnet [url]www.target.com[/url] 25  
3d7HWP4S5eX
4I R0T1rLRPDN L vrfy root //证实是否有root  
"v:Lu+Pq#b8p5E ;H:`1SXfD
expn adm  4w*L+l'|o.VH.{
Dw/AFs!|.e4Of6u
quit  
Z#xW)u` D T $UZ6SZ-OWM }
五,具体的分析漏洞  
9^+m6[4z!EH0s2L "s7g-\"|&Re%~y b1i-\
针对特定目标进行了以上分析后,总结出最好的入侵思路,选择入侵工具,做好入  &ZZ,};_)V;CME8K
侵的准备工作是必须,有时入侵时间的选择也是很重要的,因为会涉及到正常的公  d `!~0{&cq,f
司网络的正常通信,甚至会使恶意的网络在你入侵测试就发生了,最直接的漏洞利  w3R } h |
用方法,我认为是溢出漏洞了,因为他直接就可以得到对方的系统权限,返回一个  $^:WO c q$G
和在本地一样的SHELL环境,此时无所不能:  
!U@3~[5P!? zN.y if}u+R7d6v"yS
溢出攻击的分类有:  
;q3A:VnB1_
j)D+T _p7F 1,WINDOWS下的和UNIN下的  
_eAp_ +^(iU lW sN0Q4|%t
一般原理,就用户提交的参数范围超过了在内存中保存的本地变量的范围,而程序  :km5b7y{
或者系统并没有对输入的参数进行合理的长度检查,导致了被调用函数的返回地址  
+S_t3e h 被覆盖,如果用一个跳转到我们提交的shellcode的地方的地址代替,那么我们的s  RF/c Ms7N Bx(Tr[4D
hellcode就可以运行,成功得到了目标的系统权限。  #Te0b:f"\

fNl2g.B9D"e 此外还有格式化串漏洞,导致这个漏洞的原因是在处理用户数据的参数时没有过滤  
XT"irm!_7i 用户提交的,格式化符号,例如%n这个将允许输出的参数的个数保存在内存中,恶  
J'K kV3] 意构造此漏洞用户将会向内存的任何位置写SHELLCODE的地址。  
a8O{r.kXl7Um S&I*V`K%w7g-@:]%u
2,常见漏洞类型  
1dXma'Bpl
#i)UG W"C UNIX下的本地漏洞很多,挖掘起来也较容易,他主要有以下几种类型:  7S/[*G4G5s ~Q!|5O

*c*J0[S+y'U1Aw 1,环境欺骗   S C UZ h%f5{O
8k&hlsG5q
一般指PATH环境变量的欺骗,就是说如果一个特权的程序执行了一个外部的命令,  A3^1l ~5Knv"|
那么我们可以简单的构造这个外部命令程序,然后修改PATH使这个特权程序能够去  
.U9c6z NBiAB*Q;p E 首先执行我们构造的外部命令程序,而这个外部的命令程序是一个去得SHELL的程序  
P5]8{W n+Vg 例如:   }"ZO!U^DJp}1f

(Sw&\GHv&ikf}c bash$cat >ps <<EOF  
@#S V#Nv4kY
lFp9B*vu >#!/bin/sh  
/iG pQ8Q7n
-S SG-U||V:Y,E >EOF  
|$JX,yX9[ ,Q_vYMo:_ a5jQ
而这个特权程序是:  L1C*B$[^"Xdtv
M~9h5qD#B*H
bash$cat >test.c <<EOF  j3E)V5C `xd

E'U5C)]M7F$i E >int main()  9V"K0K9C_7\
FBz yz0v
>{  
gT5Kxh*Nm'I
ED r:Zs;U!U@ >setuid(0);  
3VjP@SHj
)IoZ#T ]9tA]4N~ >system("ps -ef"); /*程序调用了外部命令,但没有给出这个命令的绝对路径,  K}&|q Y;_@M]
这个是PATH欺骗的前提*/  x c?5H8u%wm7L`t
9sP1U _l
>}  
GM*l Rzb 9Xx~kQ^0U.{q)C:r4n a*Ve
>EOF  $tX){Aq;Vk?v;s

r aC ?tH)bs p)A"?^ ~j 编译后的test文件具有s为,属主是root.这样设置是因为程序test执行时会以root  aj.}'| W5])T
身份运行特权命令,这样在他运行时由于调用的是我们伪造的ps命令程序,所以会  
A!W B"|NK9G4c ]:d&p 产生一个root权限的SHELL环境。  ;X-Mn.K,xz;O8Kr

D9fs ?8uLqp"vs b 2,竞争条件  C*FexVFy(vS#ME

ppNhf m9e,o 一般指时序竞争,例如:  -J!z/j3{gs9vwI$?

$p8m|v:^;[ fp=fopen("test.log","w+");  d&d:p uLNsY

_:q(t7I{'Q{{)} chown("test.log",getuid(),getgid());  t6v Equ_r)n3k

jQ8lx4U [+z`&w$Cv:l 原理也很简单,就是如果当前的程序运行时权限是euid=root,uid=当前用户,由于  
#a7XZLF 文件test.log在打开会执行将文件的属主改为当前用户,所以我们可以在执行完fo  
|Og(v1SN h/F pen之后,chown之前删了test.log,而创建了一个到/etc/passwd的符号链接,这样  T:]TG]lQxI
就会将/etc/passwd文件的属主改为当前的用户,当前的用户就可以在passwd文件中  G7ui2GC v]v,n
将自己的uid改为0,这样就取得了system权限。  
|x|C:NK s
XzLzAs|y 3,溢出和格式串漏洞  M,z Z @4b%gKZJ

!d-?JA?byU)?9Z 导致这些漏洞的数据来源主要是:  
!| SY9\3LA;~ F;VXn
+w)A`_{ 1,命令行参数   \U;Rs%tXi
;i'nr9wH0G
2,环境变量  'k,f8cVJL-j Q

2_7r/ZA {Q'_w~6p 3,特定格式文件的读取  $p4u FS_

jWJM-}3WY 4,用户交互十的输入   bF h6[RM7w'E_

4q%i]Bz's 缓冲溢出的漏洞是有以下一些函数引起的:  
{4Dx2AY7F$X !WO@(g c6K
1,strcpy  KasRB*P4cM
\Cr9^2|+])_P7} _
2, strcat  
6rI D5D xt
J9I/z |hP 3, sprintf  J,WV%L#?

$qa]4k,h&r"rq }){.} 4, vsprintf  
1B#q*q*Y"Xe*YS
;x9jx!W;r V)a,J 格式化串的漏洞和以下一些函数有关:  
5^ PyQ.gC bAN 7?5l9^ u*q[)x
1, print/vprintf  
X t8[O*Gn#Hj%Ly i^v3^4c
2, fprintf/vfprintf  
;J [i8qd c`,Nyb.j @ l
3, sprintf/vsprintf  
V\2h5g'j G(G 1l4{9I5e0G lF#J
4, snprintf/vsnprintf  
B7v.kX5hZ]E]
1vg x]vB 利用工具有objdump,elfedump查看目标是否有不安全的以上不安全的函数,如果有  {nj fm/O;G u
可以进行黑盒测试,进而进行返汇编分析程序的上下文和执行流程,利用strings可  6C5`x f7Y Gc}
以静态查找目标的环境变量。  
@e+S;U,fof8x F2D.p )t-y'v)CL"u2c|5g
六,攻击WWW  
/I`.|(D7g ^s tX6Pm 9AwL+FE
现在的入侵事件,攻击WWW居多,原因也很简单,那就是程序员在编写WEB脚本程序  
k*rIB&IJ2^ 时更本不注重安全因素,导致了上传shell,提升权限之类的严重后果,入侵渗透测  
ak`6z-bJcR 试主要通过以下几个方面进行测试:  
(RRQR.^HW`)|;K^ N:T v MJL~"L
1,搜索SQL注入点;  mv9FO h'hR U B!a*{#^

l1r+PU)mC,` 2,搜索特定目录和文件,例如:上传程序文件,这个利用价值也很大;  ALWW(v/FvB

Z Y!Je ` 3,寻找管理员登陆网页,进行字典或者SQL饶过入侵;  (E*K \NJ0`n
&K|py@Y
4,寻找WEB程序的源代码,进行漏洞挖掘,主要涉及的漏洞类型有:SQL注入,文件  ,umh3U F D9^NGJg.`
包含漏洞,目录跳转漏洞,以脚本文件格式保存错误日志漏洞,上传漏洞;  
kQ$^"AZ6k_&r6E I;y8[K4hlO
5,在代码审核时,不要忘记对程序员犯的逻辑错误进行查看,例如:函数书写错误  
3F6gj{|%{
U@5jL p+oM W ?1ZFV1q1^"u
6,总是,漏洞的成因归根到底是由于对用户的输入没有进行严格的过滤。  
)VniKg0Wi ngy XQz?2\@6eFw^
七,其他的入侵  
%_$V*o4Bu$R*Fw 0y+|&nlLK a8~` V
1,针对数据库MSSQL,MYSQL,ORACLE等数据库的入侵;  $c!H"oE;["s:D,Q?

'M*o7NG)QF1{(O d 2,针对路由,防火墙,IDS等网络设备的渗透  
*WP YFW"H-g9Z 3i;?'`oUY
3,无线入侵渗透  _5rwV{
p|2q4Gt]1VS
八,入侵渗透以后  
1|?1FQ$O0}/I $w1^+C0s*N-SC)J
1,在成功得到系统级别的权限以后,就要在目标留下后门方便以后进入,当然清楚  
v v e%OCzQl4E 日志是最为重要的收尾工作,这些方面也有很多的技术可以讨论,例如:后门的隐  ?3L2De ^ J2R$c
藏(WIN下的ADS是一个不错的隐藏程序的东东,日志的有选择删除及其伪造等等,  
4fQ%sHq0ti{&I\&h 这里就不详谈了。。

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.