3.端口隐藏
$ F. O( g1 S4 ]很多人检查自己中没中木马或后门,都会一些方法来查看自己本机所开的端口来判断是否有木马监听,而有些rootkit就开始想如何隐藏端口了。www.520diannao.com% ]" t9 p( V+ L, c9 R
最简单的枚举当前所开放的端口信息是调用iphlpapi.dll中的AllocateAndGetTcpTableFromStack和 AllocateAndGetUdpTableFromStack函数,或者AllocateAndGetTcpExTableFromStack和 AllocateAndGetUdpExTableFromStack函数。打造最好的电脑自学交流论坛: y. `5 K6 y! E2 x0 o4 X+ `
DWORD WINAPI AllocateAndGetTcpTableFromStack(
, D. f Q# \$ F电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站 OUT PMIB_TCPTABLE *pTcpTable,6 y8 `! a6 Z! u1 p% L: O( R0 I, p
IN BOOL bOrder,我爱电脑技术论坛! o7 c" C6 ]2 z! q
IN HANDLE hAllocHeap,
* J0 H( u3 X& L我爱电脑技术论坛 IN DWORD dwAllocFlags,我爱电脑技术论坛* y5 S! V. L6 c6 G
IN DWORD dwProtocolVersion;打造最好的电脑自学交流论坛& w& j5 H) h* k2 r' e' z* u8 {
);www.520diannao.com2 x) t' _' O6 e! Z" g& B
我爱电脑技术论坛, E+ A9 l2 V3 l2 ]! \* E' h! d' u
DWORD WINAPI AllocateAndGetUdpTableFromStack(我爱电脑技术社区--打造最好的电脑技术自学交流平台( o5 P$ M9 p; D6 A, J8 `- D( m' T0 t
OUT PMIB_UDPTABLE *pUdpTable,
% D) Z3 o9 J" t$ T! J' l# [. Rwww.520diannao.com IN BOOL bOrder,
: l+ j# l3 a* }1 f8 x/ d- S- E IN HANDLE hAllocHeap,我爱电脑技术论坛; B c; g' o9 |8 K1 ]
IN DWORD dwAllocFlags,www.520diannao.com0 G) J6 f/ ^% P
IN DWORD dwProtocolVersion;
* A9 L9 X, B+ }www.520diannao.com );电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站' W% F% v6 e' x# |8 g
我爱电脑技术论坛, O% k2 i: l- ?7 p# y T
DWORD WINAPI AllocateAndGetTcpExTableFromStack(
' C+ J& f9 a2 z, n0 Z+ Z: E打造最好的电脑自学交流论坛 OUT PMIB_TCPTABLE_EX *pTcpTableEx,0 t1 F6 k; T) r; @8 j
IN BOOL bOrder,
, d1 Y2 `7 C& r; h; V7 H7 Mwww.520diannao.com IN HANDLE hAllocHeap,打造最好的电脑自学交流论坛9 c; r, _' a5 k( V* I6 s# v
IN DWORD dwAllocFlags,
! ~- l' B7 p' _- I& o' h- A K我爱电脑技术社区--打造最好的电脑技术自学交流平台 IN DWORD dwProtocolVersion;电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站2 A* P5 ~, s$ a7 p/ c+ P
);电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站) u% J/ p, R- O; I: F5 v
* v2 h/ [5 W7 w3 Y2 Y我爱电脑技术社区--打造最好的电脑技术自学交流平台 DWORD WINAPI AllocateAndGetUdpExTableFromStack(我爱电脑技术社区--打造最好的电脑技术自学交流平台5 w; D& P) y) ^8 N
OUT PMIB_UDPTABLE_EX *pUdpTableEx,
; w8 ]2 x3 s9 Q% {0 C3 s$ hwww.520diannao.com IN BOOL bOrder,我爱电脑技术论坛3 w8 U" N% x3 u$ `
IN HANDLE hAllocHeap,电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站9 s* I# h& x( u& c+ {% @# D
IN DWORD dwAllocFlags,
7 Z0 [3 Y I$ `) a( \3 h( D% Dwww.520diannao.com IN DWORD dwProtocolVersion;
# M+ g; {1 m( f( X; [5 v我爱电脑技术论坛 );电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站) A. d( Z' p) [# t5 F+ J/ B
还有另外一种方法。当程序创建了一个套接字并开始监听时,它就会有一个为它和打开端口的打开句柄。我们在系统中枚举所有的打开句柄并通过 NtDeviceIoControlFile把它们发送到一个特定的缓冲区中,来找出这个句柄是否是一个打开端口的。这样也能给我们有关端口的信息。因为打开句柄太多了,所以我们只检测类型是File并且名字是\Device\Tcp或\Device\Udp的。打开端口只有这种类型和名字。
( v: d9 F* f1 ^- M而通过察看iphlpapi.dll的代码。就会发现这些函数同样都是调用NtDeviceIoControlFile并发送到一个特定缓冲区来获得系统中所有打开端口的列表。也就是说,我们挂接NtDeviceIoControlFile函数就可以隐藏端口。' o3 O1 v+ I" J3 i* k
我们来看看NtDeviceIoControlFile的原型
' Q& i$ R6 Q" O- ^0 c我爱电脑技术社区--打造最好的电脑技术自学交流平台NTSTATUS NtDeviceIoControlFile(打造最好的电脑自学交流论坛! |2 e- L$ Z( |3 l3 O" ]! z1 w
IN HANDLE FileHandle
. A4 l1 ^( y2 U. K) R( P我爱电脑技术社区--打造最好的电脑技术自学交流平台 IN HANDLE Event OPTIONAL,
% E3 ?* a! x4 u* D* _3 g我爱电脑技术论坛 IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
" w m. G7 }, v+ \电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站 IN PVOID ApcContext OPTIONAL,
! W; O8 j# M% R2 m8 A( e& y OUT PIO_STATUS_BLOCK IoStatusBlock,
+ w/ z1 `$ r+ r( S) z5 }我爱电脑技术论坛 IN ULONG IoControlCode,
% J& D. H; H' ~; _www.520diannao.com IN PVOID InputBuffer OPTIONAL,
2 M" M- N, t/ Z$ S我爱电脑技术论坛 IN ULONG InputBufferLength,电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站" Y8 y+ ]7 m+ q
OUT PVOID OutputBuffer OPTIONAL,
/ q! R6 {1 P, y* Z6 M+ s! Q% d5 [我爱电脑技术社区--打造最好的电脑技术自学交流平台 IN ULONG OutputBufferLength我爱电脑技术社区--打造最好的电脑技术自学交流平台* k% p4 y; x# u' L
);
- J2 q; C1 O4 R3 N2 @' ]! M% r我爱电脑技术论坛 {9 k. h9 u4 i# B+ T C7 u3 P
我们来看看《The Undocumented Functions-Microsoft Windows NT_2000》中对这些参数的描述我爱电脑技术论坛5 h9 |) t- ]2 a1 @" r
FileHandle我爱电脑技术论坛; s" o- }$ F* f4 y' J( k
HANDLE to Device Object opened as a file.我爱电脑技术社区--打造最好的电脑技术自学交流平台6 U# @9 [: g6 {1 R6 o, P
Eventwww.520diannao.com. [$ v! N) Z4 R' Q) g2 q( H3 O6 x
Optional HANDLE to Event Object signalled on the end of processing request.
3 ~2 R8 g' P" r8 r, eApcRoutine
$ h+ r0 B% \9 p' q电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站Optional pointer to user's APC Routine called on the end of processing request.# g* H4 W& D3 u- S3 v
ApcContext
- y) X& y1 V: L. ^# u' f电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站User's parameter to ApcRoutine.电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站; I. d/ d( y: a/ Y- J
IoStatusBlock
t# Y8 M8 K, ?- d, m& z: z* m7 D我爱电脑技术社区--打造最好的电脑技术自学交流平台IO result of call.
; D+ n, e1 s% z9 @9 N. n我爱电脑技术论坛IoControlCode
. }3 W: c) \' p6 j7 c( r打造最好的电脑自学交流论坛IO Control code [IOCTL_*].我爱电脑技术论坛& e) W- S+ q- S) X4 ]4 x
InputBuffer我爱电脑技术社区--打造最好的电脑技术自学交流平台& a/ l' ~# ]+ ]4 ^/ A, J! f
User's allocated buffer with input data.
1 F5 A( z' N1 G. h0 f; S6 X; R我爱电脑技术论坛InputBufferLength
+ z! P$ n- `6 `: Q* f电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站Length of InputBuffer, in bytes.) M4 \& E" |" q' v6 I, P
OutputBuffer打造最好的电脑自学交流论坛- Y" i/ m2 ^2 Y
User's allocated buffer for result data.电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站, {) J0 z; H# h, I9 Q/ ?- O
OutputBufferLength电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站+ J+ c1 E2 P1 B9 F; E5 B5 L
Length of OutputBuffer, in bytes.电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站9 T/ K/ h+ G. W- H7 h: T2 ~
主要的就是FileHandle,IoStatusBlock,IoControlCode,IoControlCode,InputBufferLength,OutputBuffer,OutputBufferLength。
6 m! x$ @6 j$ kwww.520diannao.com摘自《在NT系列操作系统里让自己“消失”》。
! d. n. t7 B- w我爱电脑技术社区--打造最好的电脑技术自学交流平台还有关于端口隐藏的技术就不提了 因为在我说的文章中已经说的很清楚了,所以在写就是浪费篇幅了。电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站4 Q8 }, @# \4 ~( n/ l7 _
jiurl也曾经提到过了一种隐藏端口的方法,并且给出了代码。在参考资料中有文章URL。www.520diannao.com3 N- {/ l U4 W, f* J
4 文件隐藏。
9 d' ~& U5 k. R5 ?% E+ Z5 ~) Qwww.520diannao.com在WINNT里在某些目录中寻找某个文件的方法是枚举它里面所有的文件和它的子目录下的所有文件。文件的枚举是使用NtQueryDirectoryFile函数。
0 M7 s7 M' j" D* w9 D kNTSTATUS NtQueryDirectoryFile(打造最好的电脑自学交流论坛/ |4 k" I; Z1 f% D/ i }
IN HANDLE FileHandle,7 r4 N. a ?4 p3 x: d9 F. s" k
IN HANDLE Event OPTIONAL,我爱电脑技术论坛* x( E9 k/ l2 V6 Y0 Q
IN PIO_APC_ROUTINE ApcRoutine OPTIONAL,
7 n: } C4 k( T3 y1 G) w" O) V电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站 IN PVOID ApcContext OPTIONAL,
, Y- J( m7 g/ D9 |% M c+ L) ^ OUT PIO_STATUS_BLOCK IoStatusBlock,
) T% u3 b" J Cwww.520diannao.com OUT PVOID FileInformation,电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站4 e* d' [' m! E
IN ULONG FileInformationLength,www.520diannao.com$ b/ O- \+ |% B/ {
IN FILE_INFORMATION_CLASS FileInformationClass,电脑,技术,IT,学习,交流,网络安全,QQ,硬件,软件,编程,教程,建站$ s3 R: E+ i" K( d* u
IN BOOLEAN ReturnSingleEntry,
}) M" r' k$ gwww.520diannao.com IN PUNICODE_STRING FileName OPTIONAL,
6 S+ M: M6 `3 F5 N+ I& l; z* Uwww.520diannao.com IN BOOLEAN RestartScanwww.520diannao.com: R5 W. B! O: A- Z4 g
);