Friday, December 27, 2013

[how to fix error] Device eth0 does not seem to be present, delaying initialization (VMware Linux)

เวลาที่ผม clone VMware ของ centos มักจะมี ปัญหา ที่ network eth0 (ก็ไม่รุ้ Linux อื่นๆ เป็นด้วยมั้ยนะ)

ข้อความ error ก็จะราวๆ
ifup eth0
Device eth0 does not seem to be present, delaying initialization

1. ลบไฟล์ 70-persistent-net.rules:
rm -f /etc/udev/rules.d/70-persistent-net.rules


2. แก้ไขไฟล์ ifcfg-eth0 โดยลบบรรทัด UID กะ MACADDR หรือ commentซะ
sed -i 's/UID/#UID/g' /etc/sysconfig/networking/devices/ifcfg-eth0
sed -i 's/MACADDR/#MACADDR/g' /etc/sysconfig/networking/devices/ifcfg-eth0

3. reboot network connection
service network restart

*ถ้าต้องการตั้งค่า GATEWAY
ให้แก้ไขที่ไฟล์ /etc/sysconfig/network
เพิ่ม GATEWAY=
เช่น
echo "GATEWAY=192.168.100.100">> /etc/sysconfig/network


Monday, December 23, 2013

How to Install MySQL Server 5.1.71-1 and MySQL-Python On CentOS6.5 x64


install MySQL Server
yum install mysql-server mysql-devel


Set the MySQL service to start on boot
chkconfig --levels 235 mysqld on


Start the MySQL service
service mysqld start

Test Log into MySQL
mysql -u root
*type exit to exit mysql


Install MySQL-python
pip install MySQL-python
*you can read "Install Python 2.7.6 on Centos 6.4 x64" for more information



my basic MySQL-python Class

mysql.py
#!/usr/bin/python
# -*- coding: utf-8 -*-

import MySQLdb

class classMySQL:
 def __init__(self):
  self.db = None

 def mysql_connect(self, db_user, db_passwd, db_name, db_host='localhost'):
  self.db = MySQLdb.connect(
   host = db_host,
   user = db_user,
   passwd = db_passwd,
   db = db_name
  );
  self.query = self.db.cursor()

 def mysql_close(self):
  if self.db:
   self.db.close()

 def mysql_query(self, query):
  self.query.execute(query)
  return self.query.fetchone()

# Main must be outside the table class
def test():
 _mysql = classMySQL()
 _mysql.mysql_connect("root", "", "mysql")
 print _mysql.mysql_query("select * from user;")
 _mysql.mysql_close()

if __name__ == '__main__':
 test()


run test
python2.7 mysql.py

Tuesday, December 17, 2013

Decrypt Cisco-encrypted passwords in configuration files

#! /usr/bin/perl -p
# Decrypt Cisco-encrypted passwords in configuration files. Perl
# version; requires perl 4.036 minimum. Unlike many similar tools
# circulating on the net, this one also works for passwords longer
# than 11 characters (i.e. doesn't chop after 11 chars and doesn't
# get confused with newer IOS versions which have alleviated this
# limit).
#
# Absolutely no warranties whatsoever. Use at your own risk. No
# batteries included. Not suitable for children under 3 years.
#
# Written and © by Helge Oldach <ciscocrack@oldach.net>
#
# You are not expected to understand this code, although the algorithm
# is really blatantly stupid. Look how short it is in perl.

@tbl = unpack("C*", "dsfd;kfoA,.iyewrkldJKDHSUBsgvca69834ncxv9873254k;fg87");

($pre, $dummy, $seed, $pwd, $dummy, $suf) = ($_ =~ /^(.*\s+(password|md5)\s+)7\s+([0-1][0-9])(([0-9A-F][0-9A-F])+)(.*)$/);

if ($pwd) {
 $_ = $pre;
 foreach $p ($pwd =~ /../g) {
  $_ .= pack("C", hex $p ^ $tbl[$seed++]);
  $seed %= $#tbl;
 }
 $_ .= $suf . "\n";
}

or
join([chr(int(x[i:i+2],16)^ord('dsfd;kfoA,.iyewrkldJKDHSUBsgvca69834ncxv9873254k;fg87'[(int(x[:2])+i/2-1)%53]))for i in range(2,len(x),2)])

Friday, November 15, 2013

อธิบายช่องโหว่ที่เรียกประมาณว่า "path disclosure"

==========
พวกช่องโหว่ path disclosure (มันมีหลายชื่อเรียกนะ) ความหมายสั้นๆ ก็คือ
บัคที่มีการแสดง error message ต่างๆ นั่นเอง

ซึ่งจากข้อมูล error message ต่างๆ นี้
ก็จะแสดงให้ attacker (หรือ hacker) เห็นพวก username, และ folder ต่างๆ (information)
และนำไปใช้ประโยชน์ในการโจมตี (หรือแฮก) เว็บได้นั่นเอง
เช่น brute force ssh, brute force sql login หรือ หา information ต่างๆ จาก error massage ที่ได้

==========
ยกตัวอย่าง path disclosure จากบัค PMASA-2012-2
(phpmyadmin local path disclosure vulnerability)

bug : https://github.com/phpmyadmin/phpmyadmin/blob/d17fba309c11bcda59d74f238d75a56c543393f0/show_config_errors.php
diff patch : https://github.com/phpmyadmin/phpmyadmin/commit/c51817d3b8cb05ff54dca9373c0667e29b8498d4#diff-623df9196ca4b1c790ac2bece157a712

จะเห็นว่าไฟล์ show_config_errors.php
ได้มีการเรียกใช้ ฟังชั่น "require CONFIG_FILE;" (บรรทัดที่ 17)
ซึ่ง CONFIG_FILE ถูก define ไว้เป็น ./config.inc.php
ซึ่งถ้าเว็บเป้าหมายไม่มีไฟล์ ./config.inc.php
ก็จะทำให้ เปิดไฟล์ไม่ได้ ซึ่งก็จะทำให้เกิด error message ขึ้นมานั่นเอง

เช่น
hxxp://samuiforsale.com/phpmyadmin/show_config_errors.php
hxxp://adsovo.com/phpMyAdmin/show_config_errors.php
hxxp://mekonecology.net/phpmyadmin/show_config_errors.php
hxxp://whatels.net/phpmyadmin/show_config_errors.php

ภาพปลากรอบ

วิธีป้องกัน
- update cms, เว็บ ที่ใช้ให้ เป็น version ใหม่เสมอๆ
- ตรวจเช็ค code ให้ดีๆ (programmer ควรรอบคอบหน่อย)
*เพราะ ผมก็ยังเห็นเว็บ ธนาคาร มี error พวกนี้ อยู่เหมือนกัน
- ปิดการแสดง error message ในเครื่อง product

ชื่ออื่นๆ
- Full Path Disclosure (FPD)
- Local Path Disclosure (LPD)

==========
ปล. พยายามเขียน หล่อๆ และ หลีกเลี่ยง คำว่า เอาไปแฮกชาวบ้าน ได้เท่านี้ว่ะครับ ^^"

Monday, November 11, 2013

การใช้ torrent client ใน tracker ต่างๆ ทำ ddos ทาง UDP protocal


[2600 Admin]
P2P threat *0* http://www.lifelock.com/education/id-theft-types/file-sharing/ http://iptps06.cs.ucsb.edu/papers/Liogkas-BitTorrent06.pdf
เกิดขึ้นจริงกับ torrent protocol ได้ไหมหว่า evil peer สามารถโหลดไฟล์นอกเหนือจากที่จะแชร์กัน.. seed ไฟล์หนังแต่ดันกลายเป็น เปิดให้ peer โหลดไฟล์ข้อมูลอื่น ๆ บนเครื่อง

[ตาเล็ก วินโด้เก้าแปดเอสอี]
ถ้า torrent
ไฟล์ จะเป็น tracker/?info_hash=sha1(contentทั้งหมดของfile){40ตัว}
ปัญหาคือ จะรู้ได้ไง ว่า sha1 ของไฟล์ เป็นอะไร
อธิบาย ใหม่ๆ
เอา แบบ ปกติ ก่อนนะ

[2600 Admin]
evil peer นอกจากจะโหลดไฟล์อื่นจากเครื่อง leech ได้แล้วยัง manipulate bandwidth ใช้เป็น ddos farm ได้ด้วย http://torrentfreak.com/bottorrent-using-bittorrent-as-a-ddos-tool-101229/

[ตาเล็ก วินโด้เก้าแปดเอสอี]
- step (1.) torrent client ส่ง info_hash ไปหา tracker (port 80) เพื่อขอ ข้อมูล peer (ip:port {return มาเป็น bencode})
- step (2.) tracker ส่ง peer กลับมา (bencode {status{array[peer:port],}})
- step (3.) torrent client ส่ง UDP วิ่งไปคุยกับ peer (ip:port) ที่ได้มา
ช่วงนี้ มันจะทำ checksum กันเอง .. แล้วมันก็จะโหลดไฟล์ กันจาก Info_hash นั่นแหละ
(ตรงนี้ ไม่ได้ แงะ .. packet แม่งวิ่งเยอะจัด)
=======
ทีนี้ มาดู farm ddos (udp)
ก็คือ ส่ง info_hash ไปขอ peer จาก tracker (ง่ายๆ คือ ไป list ip:port มา)
อ่อๆ ผิดๆ เอาใหม่ๆ
ทีนี้ มาดู farm ddos (udp)
ก็คือ ส่ง info_hash ไปขอ peer จาก tracker โดย ยัด header ไปว่า มาจาก proxy (x-forward-for) ซึ่ง คือ ip เป้าหมาย
ทีนี้ ก็ยัดไป ทุกไฟล์ที่มีใน tracker เลย ....
ทีนี้ เดี๋ยว พวก peer ที่มีอยู่ใน tracker มันมาถล่มเอง ทุกๆ 60วิ

[2600 Admin]
กูเกิลดูเจอว่ามีพรีเซ้นในงาน usenix ด้วย รูปหน้า 2 ทำให้เข้าใจง่ายขึ้น https://www.usenix.org/legacy/event/sruti07/tech/full_papers/eldefrawy/eldefrawy.pdf

[ตาเล็ก วินโด้เก้าแปดเอสอี]
<--- เขียน code ระบบ piratepeer ไว้ ผ่านไป 2 ปี แล้ว
แงะ กระจุย เหลือแค่ check sum ที่วิ่งใน UDP อ่ะ

Thursday, November 7, 2013

fix unable to resolve host address in centOS6.4

เวลาลง centOS ใหม่ๆ จะมีปัญหา เรื่อง dns
ประมาณว่า เวลา wget จะเจอข้อความราวๆ
Resolving github.com... failed: No address associated with hostname.


วิธีแก้ คือ ตั้ง dns ให้ เครื่อง
ผมก็ลักไก่ใช้ของ google ซะเบย ^^"
echo "DNS1=8.8.8.8" >> /etc/sysconfig/network-scripts/ifcfg-eth0
service network restart

กรณี network ไม่ทำงานตั้งแต่ตอน boot ให้ตั้ง
/etc/sysconfig/network-scripts/ifcfg-eth0
ตรง
ONBOOT="yes"

แล้วก็
chkconfig network on

Install Python 2.7.6 on Centos 6.5 x64


Install requirements
yum -y groupinstall 'Development Tools'
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel wget


Download and compile python 2.7.6
cd /tmp
curl -O http://python.org/ftp/python/2.7.6/Python-2.7.6.tgz
tar xfz Python-2.7.6.tgz
cd Python-2.7.6
./configure --with-threads --enable-shared
make && make altinstall


Configure libraries: (shared libraries: libpython2.7.so.1.0)
ln -s /usr/local/bin/python2.7 /usr/bin/python2.7
echo "/usr/local/lib/python2.7" > /etc/ld.so.conf.d/python27.conf
echo "/usr/local/lib" >> /etc/ld.so.conf.d/python27.conf
ldconfig

Test python2.7
python2.7 
Result : [type exit() to exit]
Python 2.7.6 (default, Dec 23 2013, 17:36:30)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>


Install easy_install 2.7, pip 1.4.1 and virtualenv 1.10.1
cd /tmp
wget http://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11-py2.7.egg --no-check-certificate
sh setuptools-0.6c11-py2.7.egg
easy_install-2.7 pip
easy_install-2.7 virtualenv


Test pip
pip list
Result
pip (1.4.1)
setuptools (0.6c11)
virtualenv (1.10.1)
wsgiref (0.1.2)


Test pip install
pip install crypto
Result
[root@localhost tmp]# pip install crypto
Downloading/unpacking crypto
  Downloading crypto-1.1.0.tar.gz
  Running setup.py egg_info for package crypto

Downloading/unpacking rsa (from crypto)
  Downloading rsa-3.1.2.tar.gz
  Running setup.py egg_info for package rsa

    warning: no files found matching 'README'
Downloading/unpacking pyasn1>=0.1.3 (from rsa->crypto)
  Downloading pyasn1-0.1.7.tar.gz (68kB): 68kB downloaded
  Running setup.py egg_info for package pyasn1

Installing collected packages: crypto, rsa, pyasn1
  Running setup.py install for crypto

  Running setup.py install for rsa

    warning: no files found matching 'README'
    Installing pyrsa-encrypt-bigfile script to /usr/local/bin
    Installing pyrsa-encrypt script to /usr/local/bin
    Installing pyrsa-verify script to /usr/local/bin
    Installing pyrsa-sign script to /usr/local/bin
    Installing pyrsa-priv2pub script to /usr/local/bin
    Installing pyrsa-decrypt script to /usr/local/bin
    Installing pyrsa-keygen script to /usr/local/bin
    Installing pyrsa-decrypt-bigfile script to /usr/local/bin
  Running setup.py install for pyasn1

Successfully installed crypto rsa pyasn1
Cleaning up...
[root@localhost tmp]#


ex01.py (use #!/usr/bin/python2.7 for select python version 2.7)
#!/usr/bin/python2.7
print "windows98SE"

Monday, October 28, 2013

วิธีแก้ Segmentation fault11: ของ python บน mac osx



สาเหตุเป็นเพราะ readline.so (เดาว่าคือ lib ที่เอาไว้ให้ user edit command line ที่พิมพ์ลงไปได้ --> http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html )

#fix
cd /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload 
sudo mv readline.so readline.so.disabled 

Wednesday, September 11, 2013

แก้ error Locale Warnings/Notices Issues on Linux Server (or Desktop)

หากเจอข้อความราวๆ

$ schroot
terminate called after throwing an instance of 'std::runtime_error'
what():  locale::facet::_S_create_c_locale name not valid
Aborted

$ man schroot
man: can't set the locale; make sure $LC_* and $LANG are correct

$ locale
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory

$ perl -v
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = "en_US:en",
LC_ALL = (unset),
LC_CTYPE = "UTF-8",
LANG = "en_US.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").

This is perl 5, version 14, subversion 2 (v5.14.2) built for x86_64-linux-gnu-thread-multi
(with 56 registered patches, see perl -V for more detail)

Copyright 1987-2011, Larry Wall

วิธีแก้
export LC_ALL="en_US.UTF-8"
echo "export LC_ALL=\"en_US.UTF-8\"" >> ~/.bash_profile

Monday, April 22, 2013

__metaclass__ ใน python by 36kungfu

<01:31:26> "36kungfu": มีใครเข้าใจ __metaclass__ ใน python
<01:31:34> "36kungfu": ช่วยอธิบายให้เข้าใจง่ายๆ ที
<01:32:56> "36kungfu": เงียบกริบ
<01:33:13> "caznova": กริบ
<01:34:07> "36kungfu": ok ไม่ต้องแล้ว
<01:34:15> "36kungfu": get แระ
<01:35:41> "36kungfu": สุดยอด เอาไปเล่นอะไรได้เยอะแฮะแบบนี้
<01:35:44> "36kungfu": *0*
<01:36:40> "OllyDBG 1.10": LoL
<01:37:11> "36kungfu": ???
<01:37:12> "Sappunts[Moe Moe Kyun~]": lol
<01:38:38> "36kungfu": หัวเราะอะไรกันหว่า
<01:38:43> "36kungfu": บอกให้รู้มั่งจิ
<01:39:37> "looongcat": ปั่นงานน
<01:39:49> "looongcat": คืออะไรหว่า metaclass
<01:40:03> "36kungfu": ยกตัวอย่างดีกว่า
<01:40:06> "36kungfu": เข้าใจง่ายดี
<01:40:26> "looongcat": *-*
<01:40:30> "36kungfu": ประมาณว่า
class A:
pass
<01:40:53> "36kungfu": ปกติถ้าเรา print( str( A ) )
<01:41:37> "36kungfu": มันจะได้เลข id มา
<01:41:50> "36kungfu": ประมาณ <> 0x12323 อะไรแบบเนี้ยมั้ง
<01:41:50> "looongcat": อ่างับ
<01:42:05> "36kungfu": แต่ถ้าเราสร้าง class ขึ้นมาอีก class
<01:43:33> "36kungfu": เช่น
class meta:
def __str__( s ):
return "36kungfu"
<01:43:42> "36kungfu": แล้วแก้ class A
<01:44:05> "36kungfu": เป็น 
class A:
__metaclass__ = meta
<01:44:17> "looongcat": *-* เพื่อ
<01:44:18> "36kungfu": เวลาสั่ง str( A )
<01:44:34> "36kungfu": มันจะ print คำว่า "36kungfu"
<01:44:52> "looongcat": เหมือนเปลี่ยน id มันเหรอ O_O
<01:45:37> "36kungfu": คิดซะว่า __metaclass__ มันจะไปดูว่า function ที่เรียก class นั้น
มีกำหนดใน meta ไหม
<01:45:47> "36kungfu": str -> __str__
<01:46:26> "looongcat": อ่อเข้าใจละ ขอบคุณงับ
<01:46:29> "36kungfu": str( A ) โดยปกติ จะเรียก global function ของ python
แต่พอมีการกำหนด metaclass มันจะไปเรียก __str__ ของ class meta
<01:46:50> "looongcat": มันเหมือน override แบบกำหนด class เป้าหมายได้?
<01:47:25> "looongcat": อ๊ะหรือไม่ใช่ 55
<01:47:31> "36kungfu": ไม่ใช่
<01:47:46> "looongcat": มันเหมือนยืมมางี้ปะหว่า
<01:48:45> "caznova": hook
<01:49:09> "36kungfu": อืมมม ประมาณนั้นน่าจะใช่ (มั้ง)
<01:49:23> "36kungfu": <01:51:11> "36kungfu": str( A )
โดยปกติ จะเรียก global function ของ python แต่พอมีการกำหนด metaclass
มันจะไปเรียก __str__ ของ class meta <<< คิดแค่นี้พอ
<01:49:39> "36kungfu": แต่ใช้ str อาจจะไม่เห็นภาพ ว่าเอาไปใช้ต่อยังไง
<01:49:45> "looongcat": ช่าย ๆ
<01:49:48> "36kungfu": ขอยกตัวอย่าง ที่เอาไปใช้ได้จริงนะ
<01:50:11> "36kungfu": สร้าง
class c_singleton( type ):
def __init__( cls, name, bases, dict ):
super( c_singleton, cls ).__init__( name, bases, dict )
cls.instance = None 
def __call__( cls, *args, **kw ):
if cls.instance is None:
cls.instance = super( c_singleton, cls ).__call__( *args, **kw )
return cls.instance
<01:50:27> "looongcat": *0*
<01:50:39> "36kungfu": แล้วกำหนด
class myclass:
__metaclass__ = c_singleton
<01:50:54> "36kungfu": จะทำให้ ไม่ว่าจะเรียก myclass() กี่ครั้ง
<01:51:06> "36kungfu": ก็ยังคงได้ instance ของ myclass อันเดิม
<01:51:15> "36kungfu": ไม่มีการ new ใหม่
<01:51:21> "looongcat": singleton patternn
<01:51:26> "36kungfu": เป็น singleton class นั่นเอง
<01:52:11> "36kungfu": เหมือนเป็นการเล่นกับ init( myclass ) กับ call( myclass )
<01:53:00> "caznova": singleton ของ python แบบนี้เทห์จัง
<01:53:33> "looongcat": อ่าขอบคุณมากงับ //ปั่นงานต่อ
<01:53:44> "Tum": ชาบูๆ

Monday, March 18, 2013

[perl] ดึง สมาชิก ออกจาก array ทีละ 2 ตัว

เห็นโพสที่ว่า



ใช้ array_shtft 2 ครั้งมันน่าเกลี่ยดไหมฮะนี่
ถ้าเป็น Perl เขียนเป็น array_shift($var) x 2; ก็พอดูได้


ก็เลย เกิดความสงสัยนิดหน่อย เพราะ รู้ว่า perl ไม่มี function array_shift นี่หน่า

ก็เลย เขียน code ตัวอย่างไว้ให้เจ้าของ โพส นิดหน่อย
แล้วก็เอามา ลง blog เผื่อมีคนขี้เกียจคิด (แต่จริงๆ แล้วมันได้ต้องคิดเลยนะเนี้ย -.,-'')

sub shift2 (\@) {return splice(@{$_[0]}, 0, 2);}
sub pop2 (\@) {return splice(@{$_[0]}, -2);}

Tuesday, March 12, 2013

วิธีแฮก wifi แบบเข้าใจง่ายๆ และ ต่อยอดได้

ก่อนอื่น ให้อ่านบทความเก่าๆ ก่อนนะคับ

--> วิธีแฮกไวเรส

จากนั้น ลองดู vdo ต่อไปนี้ทีละอันครับ





ปูพื้น ทำความเข้าใจ เรื่อง wifi กันหน่อย
ด้วย VDO อธิบายวิธีแฮก wifi wpa (ถ่ายทำนอกสถานที่)







แฮก wifi แบบ GUI ง่ายๆ ตอนที่ 1 ด้วย Fern wifi Cracker
(ขอบคุณ น้อง cyberclasher.thaicybergames ที่มาประกอบคลิป นะครับ)







แฮก wifi แบบ GUI ง่ายๆ ตอนที่ 2 ด้วย Gerix Wifi Cracker-ng
ใจจริง ก็ไม่ได้อยากให้ใช้ tools นะ
เพราะรู้สึกว่ามันไม่ค่อยให้ความรู้เท่าไหร่
ดังนั้น หากอยากได้ความรู้ ผมแนะนำว่า
หากสงสัยตรงไหน ก็เอาคำนั้นๆ ไปค้น google เอา
แบบนี้จะได้ความรู้กว่าใช้ tools เยอะ







แฮก wifi แบบ GUI ง่ายๆ ตอนที่ 3 บน Mac OS ด้วย Wifi Crack
รอบนี้ใน macbook นะครับ (มีแถมวิธีการทำ wordlist ง่ายๆ ให้นิดหน่อย)

ปล.
perl -e 'foreach("000000".."999999"){print $_."\n";}' > num.txt

Wednesday, February 13, 2013

นี่คือเรื่องจริง ...

นี่คือเรื่องจริง ... แม้คุณจะทำงานไปแล้ว หากคุณต้องการจะพัฒนาความรู้

คุณก็ยัง ต้องอ่าน และอ่าน ... และอ่าน

เพราะ ถ้าคุณ อยากเก่ง อยากทำได้ อยากทำเป็น
แม้จะไม่ได้เรียนคอมมา, ไม่มีอาจารย์คอยสอน หรือ จบจาก มหาลัยชั้นนำ
คุณก็ยังต้องค้นและอ่านจาก google, หนังสือ, ไฟล์​ pdf ต่างๆ อยู่เสมอๆ ครับ

ณ. ปัจจุบัน ผมก็ยังนั่งค้น google อยุ่ทุกวัน วันละไม่ต่ำกว่า 4 ชม. เลยครับ
(สมัยก่อนผมนั่งอ่าน 8 ชม.กว่าๆ ต่อวันแนะ)

ขอให้สนุกกับการอ่านครับผม
ตาเล็ก วินโด้เก้าแปดเอสอี

ปัญหาใหญ่ๆ ของนิสัยประจำตัวของผม

ผมมีปัญหาใหญ่ๆ ของนิสัยประจำตัวของผม ซึ่งก็คือ
เวลาที่ผมได้เห็นคนเก่งๆ หรือ ได้อ่านบทความน่าสนใจๆ

"ผมจะอิจฉาเขาครับ"

แล้วผมไปอิจฉาเขาเพราะอะไรน่ะเหรอ ? .. ก็เวลาอ่านที่ผมได้อ่านที่เขาพิมพ์
แล้วผมมักจะรู้สึกว่า ผมเองก็อยากทำได้อ่ะ ผมเองก็อยากทำเป็นอย่างเขาๆ ทั้งหลายบ้างวุ้ย

... แต่ภาษา EN ผมก็ไม่เก่ง, เรียนก็ไม่ได้เรียน ผมก็เลยต้องอ่าน และอ่าน และอ่าน

ซึ่งหากใครที่รุ้จักหรือติดตามผมมานานจะสังเกตุเห็นได้ว่า "ผมจะไม่ถามใครเลย"
(... ถ้าผมไม่ลองมันจนเจอทางตันหรือมีเวลาจำกัดในการทดลองเรื่องนั้นๆ ...)

ซึ่ง ทุกเรื่องที่ผมได้ "ลองผิดลองถูก" มานั้น มันทำให้ผมสามารถอธิบายได้เข้าใจง่ายๆ นั่นเอง
(แต่ผมก็มักจะอธิบายแบบภาพและตัวอย่าง และศัพท์ภาษา en ที่ออกเสียงผิดๆ
... แต่เท่าที่ดู หลายๆ คนก็เข้าใจมากกว่าภาษาทางการๆ ในหนังสือกันอยู่นะ)

ปล. ผมสนุกกับการได้ลองผิดๆ ของผมนะและผมสนุกกับการได้อธิบายสิ่งเหล่านั้น
ให้คนที่กำลังเดินตามหลังผมมา เพื่อให้คนเหล่านั้น ได้มาเดินข้างๆ ผมน่ะ

@stephack.com

Saturday, February 9, 2013

หลักปฏิบัติหลังโดนแฮก Apple ID

คุณโดนแฮก Apple ID หรือ ไม่ ? ให้สังเกตุ อาการ Apple ID ของคุณดังนี้
ใน iphone/ipad ให้ดูตรงประวัติการโหลด หากมีรอยโหลด app ที่ไม่ได้ซื้อ หรือที่ไม่เคยโหลด
ให้นึกให้ดีว่า เคยให้ใครยืม id ไหม ? ถ้านึกดีแล้ว ไม่เคยเลยแน่นอน = คุณโดนแฮก

=======================================
หลักปฏิบัติหลังโดนแฮก Apple ID
=======================================
ตรวจดูว่ายัง login ได้อยู่หรือไม่
- ถ้าไม่ได้ ให้แจ้งลืมพาส เพื่อทาง apple จะได้ ส่งข้อมูลมาให้ ใน email ที่ใช้สมัคร
หรือ ติดต่อ Apple Hotline ที่เบอร์ 001800 4412904 (โทรฟรี)
เพื่อยืนยันตัว และจะได้ Apple ID ของตัวเองกลับมาอีกครั้ง

- ถ้าได้ หรือ ได้พาสจาก ในเมล์ หรือจาก Apple Hotline
ผมแนะนำให้
1. restore เครื่อง กลับเป็นค่าเริ่มต้น
(*จริงๆ แล้ว apple มีระบบความปลอดภัยในการเข้าถึงข้อมูลเครื่อง พอสมควร
ซึ่งไม่ต้องตื่นตูมถึงกับ restore กลับก็ได้
.. แต่ เพื่อความชัวว์ เผื่อบางเครื่องเจลเบรคไว้ ซึ่งอาจจะมีโปรแกรมพวก keylog ฝังอยู่ได้
ผมจึง ขอแนะนำแบบรวมๆ ให้ restore เพราะ เหมือน format ลงใหม่ .. โปรแกรม ไวรัส โทรจัน คีย์ล๊อค ต่างๆ
จะได้ ไม่ติดค้างอยู่ในเครื่อง
และ ขั้นตอนทุกอย่าง ให้ทำ ในเครื่องที่ restore เสร็จ, บน wifi หรือ 3g ส่วนตัวเท่านั้น)

2. เปลี่ยน "รหัสผ่าน", "คำถาม/คำตอบ ป้องกันลืม(Forget Password)"  ของ Apple ID นั้นใหม่

3. ถอดข้อมูลที่โยงบัตรเครดิต ออก (*ไว้มั่นใจว่าปลอดภัย ค่อยใส่ใหม่ หรือ ถอดทุกครั้งที่ซื้อของเสร็จ)

4. ย้ายข้อมูล ที่อยู่บน iCloud กลับมาเก็บในคอม
(พวก Application, Contacts, Photo, Notes
รวมไปถึง Application ที่ใช้เก็บข้อมูลลับ [บัญชีธนาคาร / บัตรเครดิต เป็นต้น]
แต่ข้อมูลเหล่านี้ หากคนร้าย syn ไปลงไว้บนเครื่องของเขาแล้ว
เราก็ไปลบจากเขาไม่ได้นะ ... ซึ่งเขาอาจจะใช้ประโยชน์จากตรงนี้ได้)

5. เปลี่ยน "รหัสผ่าน", "คำถาม/คำตอบ ป้องกันลืม(Forget Password)"
ของ Email ที่โยงกับ apple id นี้

6. เปลี่ยน "รหัสผ่าน", "คำถาม/คำตอบ ป้องกันลืม(Forget Password)"
ของเวป ที่ใช้พาส หรือ คำถามกันลืม ตรงกับ apple id นี้

******จบขั้นตอนการป้องกัน******

... หากทำตามที่บอก และไม่ไปกรอก Apple ID ที่เวปที่ไม่น่าเชื่อถือ
หรือ ไปใช้ wifi ในจุดซุ่มเสี่ยง (wifi ควรตั้ง ask to join นะคับ)
ผมมั่นใจว่า ไม่น่าจะโดนแฮกได้แน่ๆ (ถ้าโดนเนี้ย คือ มาง apple โดนแฮก แล้วล่ะ)

* อธิบายเพิ่มเติม กรณีฟิชชิ่ง

ref : http://2g.pantip.com/cafe/mbk/topic/T12997206/T12997206.html

=======================================
ข้อปฏิบัติ เพื่อตามจับคนแฮก
=======================================
*ตอนเขียน บทความนี้ ผมกำลังตามคนร้ายให้อยู่ .. แต่ถ้าได้ผลยังไง เดี๋ยวจะมาแจ้งอีกที

Thursday, February 7, 2013

ทำไม Dota ถึงมี HackMap แล้วทำไม Hon ไม่มี HackMap

เอาล่ะ วันนี้ แอบอู้งาน พิมพ์บทความยาวๆ ซักอัน
จากประเด็นที่ติดค้างไว้ ก็คือ

- ทำไม Dota ถึงมี HackMap แล้วทำไม Hon ไม่มี HackMap

ก่อนอื่นผมก็คงจะต้องปูพื้นฐานให้คนที่สงสัยและตั้งคำถามเหล่านี้ขึ้นมาก่อน ดังนี้

0x01 หลักการทำงานของตัวเกมส์ (รวมถึงโปรแกรมที่ทำงานบน windows แทบทุกโปรแกรม)
ตามหลักแล้ว ตัวเกมส์ ที่ติดตั้งในเครื่องของเรา (client)
การทำงานหลักๆ (พวกการคำนวนหนักๆ ทาง ฟิสิก, คณิต อย่างเช่น วิถีกระสุน ใน CSO)
ทางผู้สร้างเกมส์ มักจะเขียนไว้ให้มันทำงานอยู่บนเครื่องผู้เล่น
(จะได้ไม่เป็นภาระของลูกหลาน เอ้ย ของเซิฟเวอร์)

แต่พวกเกมส์ Online ต่างๆ อะไรที่มันสำคัญๆ เขาจะพยายามเก็บไว้บนฝั่ง server หมด
เช่น ค่า status, เงิน, item ... เพราะ พวกค่าเหล่านี้ ขืนเก็บไว้ฝั่งคนเล่น
ก็คงเจอใช้โปรแกรมจำพวก cheat engine แก้กระจายพอดี
(ลองนึกถึงเกมส์ offline ที่เราแก้ค่าเลขต่างๆ ด้วย โปรแกรมจำพวก Cheat O'matic แล้วกัน)

สรุปว่า อะไรก็ตามที่มันทำงานบนฝั่งผู้เล่น ... ผู้เล่นแก้ไขค่าได้ทั้งหมด




0x02 แล้วเกมส์มันทำงานยังไง ?
ก่อนอื่น คงต้อง อธิบายให้เข้าใจการทำงานของโครงสร้างของเกมส์กันก่อน
เนื่องจากในสมัยก่อน คอมยัง spec ไม่แรง, เน็ตก็ไม่แรง
ดังนั้น แทบจะทุกอย่าง จะโดนผลักภาระมาให้ client ทำงานทั้งหมด
ยกตัวอย่าง
- เกมส์ Counter Strike ทำไม ถึงมองทะลุกำแพงได้ ?, lock เป้า auto, ฯลฯ ได้
เพราะ ในสมัยที่เน็ตยัง 512kb คอม มีแค่ 2 core
ถ้าหากการคำนวนต่างๆ ต้องทำบนฝั่ง server
ลองนึกภาพ คนเล่น ซัก 5000 คน ส่งข้อมูลไปให้ server ประมวลผล
เสร็จแล้วส่งผลลัพธ์กลับมา ... ผมว่า server คงเดี้ยงแน่นอน
ดังนั้น อะไรที่เป็นกานทำงานบนฝั่งผู้เล่น ... ทางผู้เล่นจึงสามารถแก้ไขได้หมด (โกงได้เยอะเลย)



0x03 เกมส์ Dota ทำไมถึง ปิดหมอก, เห็นจุดของ User ใน mini-map, ปลอมชื่อ, ฯลฯ ได้
เพราะ ทาง server ได้ส่งข้อมูล ว่า player อยู่ตรงไหนของ map มาให้ฝั่ง Client
แล้ว ค่อยให้ Client วาดหมอก มาทับ ( เหมือนสั่ง enable/disable )
เพื่อจะได้ไม่เป็น ภาระ server (ต้องเข้าใจว่า เกมส์มันนานมาแล้ว เลยมีข้อจำกัดเรื่อง internet + spec server)
... ดังนั้น หากจะแก้ให้ไม่มีหมอก ทางฝั่งผู้เล่น ก็ทำโปรแกรม
ขึ้นมา แก้ไข memory ตรงส่วนของหมอก ให้เป็น disable นั่นเอง



0x04 ทำไม Hon ไม่มี hack map
ผมเดาว่า เพราะ ทางผู้สร้างเกมส์ รู้จุดด้อย ของเกมส์แนวนี้
แทนที่จะส่งข้อมูลผู้เล่นทั้งหมดมาให้ client แบบ dota
แต่ hon เลือกที่จะให้ server ส่งมาให้ แค่รอบๆ ตัวผู้เล่น (เป็นภาระ server โดยให้มีการส่ง บ่อยขึ้น)
ดังนั้น ต่อให้ ปิดหมอก .. ก็ไม่เห็นผู้เล่น จนกว่าจะถึงระยะสายตาของ hero นั่นเอง




0x05 แล้วทาง TCG แก้ไขไม่ได้เลยเหรอ ?
ผมมองว่า แก้ไม่ได้ เพราะมันเป็นที่ตัวเกมส์ (ต้องแก้ที่เกมส์ ... ซึ่งไม่ต่างอะไรกับการออกแบบเกมส์ขึ้นมาใหม่)
แต่พอที่จะป้องกันได้ โดย แก้ไข ที่ตัว TCG Client ให้ตรวจสอบโปรแกรมที่จะเข้ามาแก้ไข memory (ในส่วนของ disable หมอก)
แต่ .. ทางฝั่งคนทำ Hackmap ก็จะทำการ reverse ตัว TCG Client เพื่อมานั่งดูการทำงาน
และ หาทางหลบการตรวจสอบให้ได้ (bypass)
ทาง TCG ก็ต้องแก้ใหม่ ... ทางคนทำ hackmap ก็จะหาทาง bypass ใหม่ (วนแบบนี้ไม่จบไม่สิ้น)



0x06 แล้วจะป้องกันยังไงให้ bypass ไม่ได้ หรือ ยากขึ้น ?
ผมมองว่า สาเหตุสำคัญที่ทาง hackmap ทำการ bypass ได้
เพราะทางฝั่ง tcg client ไม่ได้ pack ตัว client
ซึ่งการ pack เนี้ยน่าจะทำให้คนที่ทำ hackmap หลายๆ คน reverse ยากขึ้น
และ หาทาง bypass ไม่ได้ นั่นเอง

แต่เหตุผลที่กลัวว่าจะมีปัญหา กับ anti-virus ของผู้เล่น
เพราะ anti-virus มักจะฟ้องว่าไฟล์ที่ผ่านการ pack ทุกประเภท มาเป็นไฟล์ ต้องสงสัย
เพื่อป้องกันไวรัสจริงๆ ที่ pack เพื่อหลบการตรวจสอบมานั่นเอง

พอทาง TCG ไม่สามารถที่จะ pack ได้ (เพราะ user, ร้านเกมส์ ส่วนใหญ่ ปิด av ไม่เป็น)
ก็ทำให้ ทางฝั่ง hackmap สามารถ reverse ดูการทำงานและทำ bypass ได้ต่อไป



ปล. แต่ผมเสนอว่า ให้แยก exe+chanel สำหรับ pack ออกมาอยู่นะ ^^"

Saturday, February 2, 2013

[perl] parseUrl


sub parseUrlInput {
  #protocal://user:pass@subdomain.domain:port/pathA/pathB/file.ext?arg1=z&arg2=y#flagment
  #$VAR1 = 'protocal';
  #$VAR2 = 'user';
  #$VAR3 = 'pass';
  #$VAR4 = 'subdomain.domain';
  #$VAR5 = 'subdomain';
  #$VAR6 = 'domain';
  #$VAR7 = 'port';
  #$VAR8 = '/pathA/pathB/file.ext';
  #$VAR9 = '/pathA/pathB/';
  #$VAR10 = 'file.ext';
  #$VAR11 = 'arg1=z&arg2=y';
  #$VAR12 = 'flagment';
  return $_[0] =~ m,^(?:(\w+)://)?(?:(\w+):(\w+)@)?((?:([\w\.]+)\.)?(\w+\.(?:\w+)))(?::(\d+))?(([\w/%]*/)(\w+(?:\.\w+)?)?)?(?:\?([\w=&]+))?(?:#(\w+))?$, if($_[0]);
}

Monday, January 28, 2013

ตัวอย่าง การแฮกด้วยเทคนิค reverse_tcp (php) + netcat

- ทำมายั่วให้เด็กๆ อยากอ่าน google เกี่ยวกับระบบ TCP เท่านั้น
มิได้แฮกอวดหรืออยากดังแต่ประการใดเพราะ
ปกติ ผมไม่ได้แฮกนานมากแล้ว ..​ แต่เน้นสอนมากกว่า
ดังนั้น หากอยากได้ความรู้หรือมีข้อสงสัยตรงไหน
อ่านจาก google หรือ เข้ามาสิงใน teamspeak ได้ครับ

- แม้ว่าจะใช้โปรแกรม สำเร็จรูป แล้วทำให้แฮกได้
แต่ถ้าคุณไม่รุ้พื้นฐาน client/server , tcp, socket, การเขียนโปรแกรม
ผมมองว่า แฮกด้วย tools เหล่านั้น ก็ไม่เกิดประโยชน์อะไรเลยครับ
เน้นอีกทีว่า "แฮกเพื่อเรียนรู้ เถอะครับ .. จะได้ไม่เป็นภาระของลูกหลาน"

- netcat หรือ nc มีติดมาใน linux สามารถ yum install
หรือ apt-get install ได้เลยครับ
ปล.​ sudo netcat -v -n -l -p 443

- ตัว metasploit เป็นแค่ tools แฮกเฉยๆ ครับ
ซึ่งเป็น​ community ใหญ่มาก ..​
ลงได้ทั้ง win, linux, mac คับ
แต่อย่าถามผมนะ ว่าใช้ยังไง
เพราะผมก็ google + help เอา รัวๆ เหมือนกัน - -''

- stephack.pl เป็น exploit ประเภท RCE
(remote code execution)
ประมาณว่า ใส่ ip เครื่องที่จะแฮกเข้าไป
ก็สามารถ รันคำสั่งต่างๆ ได้เลยครับ
แต่ว่าเป็น plublic exploit ที่เขียนขึ้นมาเล่นๆ
เอาไว้ใช้แฮกเล่น ขำๆ เอ้ย เพื่อการศึกษาเท่านั้นครับ

- แฮก ..​ เรื่องง่ายๆ หากมีคนสอนที่อธิบายเข้าใจง่ายๆ
ส่วนการป้องกันไม่ให้โดนแฮก ..​ง่ายกว่าหาวิธีแฮกเยอะ แถมฟรีอีกด้วย :)

Wednesday, January 16, 2013

อ้าว กระทรวงวัฒนธรรม เจอแฮกฝัง backlink กะดัน PR เนียลๆให้เวปบอลกะเวปโป๊

พอดีมัวแต่ยุ่งๆ กับการทำงาน (ทำเวป) .. มาอ่าน chat log ใน ts
เห็นแว๊ปๆ ว่า กระทรวงวัฒนธรรม โดนแฮก
ก็เลยไปตามๆ หารูปประกอบ (ได้มา 3 รูปจากเวปบิทแห่งหนึ่งที่ห้ามเอ่ยชื่อ)

โดยปกติเวปที่โดนแฮกทำนองนี้ผมว่าเยอะแยะเลยนะ
เป้าหมายส่วนมากจะเป็นเวปที่มี PR (page rank) สูงๆ

... ก่อนอื่นต้องอธิบายก่อนว่า
เจ้า page rank เนี้ย มีเอาไว้บอกระดับความน่าเชื่อถือของเวป
หา page rank สูง ... ก็จะยิ่งทำให้เวลาที่มีค้นหาคำอะไร จาก google
เช่น คำว่า "แทงบอล" แล้วถ้าผลการค้นหาดันมีหลายเวป
พวกเวปที่มี PR สูงๆ เนี้ยแหละอันดับของมันจะดีกว่าชาวบ้านเขา

ส่วนวิธีดัน PR ให้เวปตัวเองอย่างง่ายๆ
(วิธีนี้ใช้กันในสมัยก่อนนะ .. ส่วนสมัยนี้รู้สึก google จะเปลี่ยนอังกอริทึ่มไปแล้วมั้ง)
ก็คือ การเอา link ของเวปที่ต้องการจะเพิ่ม PR
ไปยัดไว้ในหน้าเวปที่มี PR สูงๆ นั่นเอง (เช่นเวป จุฬา นี่ PR 10)
[เขาเรียกว่าการทำ backlink]

ส่วนเวปกระทรวงวัฒนธรรม ที่โดนแฮกเนี้ย มี PR 7/10
(แค่ PR 5 ขึ้นไป ก็เป็นเป้าหมายแระ)

สรุปประมาณว่า จุดประสงค์ของแฮกเกอร์ ก็คือ
น่าจะแฮกเข้ามา เพื่อฝัง url กลับไปหาเวปของตัวเอง
(หรือเวปที่ตัวเองรับจ้างทำอันดับดีๆ ใน SEO มา นั่นเอง)

ส่วนเหตุผลว่าทำไมต้องเป็นเว็บโป๊ หรือ เว็บบอล น่ะเหรอ ??
เช่น
- เว็บโป๊ เว็บแทงบอล เนี้ย เขาจ้างโฆษณากันแพงมากกกกกกกกกก
- รับจ้างดัน keyword ... เท่าที่เห็น เขารับจ้างกันที่ keyword ละ 2,000 - 6,000
(หรืออาจจะแพงกว่านั้น .. เช่นคำว่า "เกมส์", "เที่ยวเกาหลี")

เพียงแค่นี้ก็คงพอ ที่น่าจะทำแล้วล่ะ ^^"


ปล. หากสังเกตุดิๆ เวป PR5 ขึ้นไปเนี้ยโดนแฮกและโดน spam กระจายอ่ะ
(กลับไปอ่านเรื่องแฮกไปทำไม อีกรอบจะเข้าใจเหตุผลมากขึ้น)





Wednesday, January 9, 2013

[tip] หน่วยการนับ (พวก เนื้อที่ใน HDD)


1 Bit = Binary Digit
8 Bits = 1 Byte

1024 Bytes = 1 Kilobyte
1024 Kilobytes = 1 Megabyte
1024 Megabytes = 1 Gigabyte
1024 Gigabytes = 1 Terabyte
1024 Terabytes = 1 Petabyte
1024 Petabytes = 1 Exabyte
1024 Exabytes = 1 Zettabyte
1024 Zettabytes = 1 Yottabyte
1024Yottabytes = 1 Brontobyte
1024 Brontobytes = 1 Geopbyte
1024 Geopbyte=1 Saganbyte
1024 Saganbyte=1 Pijabyte

1024 Pijabyte = 1 Alphabyte
1024 Alphabyte = 1 Kryatbyte
1024 Kryatbyte = 1 Amosbyte
1024 Amosbyte = 1 Pectrolbyte
1024 Pectrolbyte = 1 Bolgerbyte
1024 Bolgerbyte = 1 Sambobyte
1024 Sambobyte = 1 Quesabyte
1024 Quesabyte = 1 Kinsabyte
1024 Kinsabyte = 1 Rutherbyte
1024 Rutherbyte = 1 Dubnibyte
1024 Dubnibyte = 1 Seaborgbyte
1024 Seaborgbyte = 1 Bohrbyte
1024 Bohrbyte = 1 Hassiubyte
1024 Hassiubyte = 1 Meitnerbyte
1024 Meitnerbyte = 1 Darmstadbyte
1024 Darmstadbyte = 1 Roentbyte
1024 Roentbyte = 1 Coperbyte

Monday, January 7, 2013

ทริปใหญ่ๆ สำหรับคนใช้ raspberry pi

เกริ่นนำ ... ผมนี่ก็โรคจิตนะ ชอบไปหาปัญหาแปลกๆ มาใส่ตัวเพื่อได้นั่งแก้ซะตลอด
รอบนี้ผมลอง OS debian บน pi (ซึ่งเป็นตัว StrippedRaspbianv2.1.img)
ประมาณว่า นั่งหา OS ที่ตัดพวก xdesktop ออกหมด
เพื่อจะเอาทำเป็น server อย่างเดียว แต่ต้องมี repo ให้ดึงมาใช้เยอะๆ จะได้ไม่เหนื่อยคอมไพล์เอง
(แต่ผมว่า StrippedRaspbianv2.1.img ผมมองว่าเขาตัดออกหมดเกลี้ยงเลยซะมากกว่า
ก็เลยต้อง apt-get ลงตัวสำคัญๆ เองแทบหมด [เหนื่อยกว่าเดิมมั้ยเนี้ย])

ทีนี้ปัญหาก็มาเกิดตอนกำลังนั่ง apt-get install นั่น นู่นนี่ ไปเรื่อยๆ
ลงไปลงมาไม่กี่อย่างก็เกิดอาการ "เห้ย เนื้อที่ ไม่พอ"
ตอนแรกผมก็งงนะ ว่า micro-sd ตั้ง 8 GB แล้วเนื้อที่มันหายไปไหนหมด
ตอนแรกที่ mount img มาลงตรูก็ไม่ได้แบ่ง parttion อะไรนี่หว่า
ก็เลยคิดว่า pi มันควรจะ แบ่ง micro-sd ออกเป็นแค่ 2 parttition
- อันแรก อยู่บน fat32 เพื่อเอาไว้ให้ตัว raspberry pi โหลดตอนบูท
- อันสอง เอาไว้ใส่ OS ที่เราจะใช้

ซึ่งมันก็ควรเป็นประมาณนั้นแหละ .. แต่ไอ้ที่เอาไปใส่ os มันดันแบ่งให้ พาธ / ไว้แค่ 2GB
ที่เหลือ ไปอยู่ใน พาธ /dev/mmcblk0p1 แทน
ทีนี้ เวลา apt-get ทั้งหลาย มันไม่ได้โหลดไปเก็บใน /dev/mmcblk0p1 นี่หว่า
เนื้อที่ 2GB มันก็เลยไม่พอ

ทีนี้ผมก็เลยต้องแก้ โดยการไปดึงเนื้อที่จาก /dev/mmcblk0p1 มาเพิ่มให้ / นั่นเอง
แล้วตอนแรก คิดว่าจะเป็นแค่ ตัว raspbian ... ที่ไหนได้ pwnpi ก็เป็น
ดังนั้น เอาเป็นว่า .. ผมมองว่าคงเป็นทุก img แหงๆ




ส่วนวิธีแก้ อ่านวิธีทำได้จาก : http://simonthepiman.com/how_to_increase_my_primary_disk_size.php โลด



ภาพปลากรอบ

CPAN: Terminal does not support GetHistory / AddHistory

ปัญหา "CPAN: Terminal does not support GetHistory / AddHistory"

จากที่เจอพบว่า ปัญหานี้จะเกิดตอน ที่ สั่งออกจาก CPAN
กับ linux ตระกูล debian (raspbian และ ubuntu ก็เป็น)
วิธีแก้ คือ ต้องลง libterm-readline-gnu-perl


sudo apt-get install libterm-readline-gnu-perl

หรือ (OSX) เข้า CPAN แล้ว install Term::ReadLine::Perl

install Term::ReadLine::Perl

การเปลี่ยน Mirror site ให้ CPAN (perl)

จากที่ลองเล่น PWNPI 3.0 แล้วก็ update พวก package ต่างๆ
ก็พบว่า site ที่เอาไว้ update เนี้ย เจ้า CPAN มันไปเกาะของ ตปท. ซึ่ง โหลดนานเกิ๊น
ก็เลย ต้องแก้กันหน่อย

คำสั่งก็ประมาณว่า ...

list url มันมาดูหน่อย ว่ามันเกาะที่ไหนบ้าง (ดูไปงั้นแหละ)
cpan[1]> o conf urllist


remove site ทั้งหมด ออกแม่มเบย (จะไม่ remove ก็ได้นะ)
cpan[1]> o conf urllist shift
*พิมพ์ 1 ที เอาออก 1 เวป

add mirrors site ของ พี่ไทยลงไป
cpan[1]> o conf urllist push ftp://mirror.yourconnect.com/CPAN/
cpan[1]> o conf urllist push ftp://mirrors.issp.co.th/cpan/
cpan[1]> o conf urllist push http://mirror.yourconnect.com/CPAN/
cpan[1]> o conf urllist push http://mirrors.issp.co.th/cpan/

save permanent ซะ .. คราวหน้าจะได้ไม่ต้องพิมพ์
cpan[1]> o conf commit


จบ (จดไว้กันลืม ... ป่านนี้ไม่มีใครใช้ perl แล้วมั้ง T^T)

Sunday, January 6, 2013

Tunnel - SSH - Firefox

Creating a tunnel for Firefox via SSH is VERY easy. :)
Just use this command:

ssh -fND4321 aa.bb.cc.dd

That will put the ssh connection into the background
and you will configure firefox to connect through port 4321.

ref : http://securitynotes.blogspot.com/2008/04/tunnel-ssh-firefox.html

fix metasploit msfupdate error (svn: ... bla bla ... no versioninformation available .. bla bla .. libserf-0.so.0)

ปกติ น่าจะมี libssl กะ libcrypto อยู่แล้ว (มั้ง)

- libssl0.9.8 - SSL shared libraries
- libssl0.9.8-dbg - Symbol tables for libssl and libcrypto



แต่ถ้าไม่มี ก็ลงซะ
sudo apt-get install libssl0.9.8
sudo apt-get install libssl0.9.8-dbg

------
จากนั้นก็ย้ายไฟล์ที่ต้องใช้มาโลด

cd /opt/metasploit-4.1.4/common/lib/
mv libssl.so.0.9.8 libssl.so.0.9.8.bak
mv libcrypt.so.0.9.8 libcrypt.so.0.9.8.bak 

sudo ln -s /usr/lib/libssl.so.0.9.8 /opt/metasploit-4.1.4/common/lib/
sudo ln -s /usr/lib/libcrypt.so.0.9.8 /opt/metasploit-4.1.4/common/lib/

วิธี ปลอม mac address ใน linux

[root@www ~]# ifconfig wlan0 down
[root@www ~]# ifconfig wlan0 hw ether 00:00:00:00:13:37
[root@www ~]# ifconfig wlan0 up
[root@www ~]# ifconfig wlan0 | grep HWaddr
wlan0     Link encap:Ethernet  HWaddr 00:00:00:00:13:37
[root@www ~]#
Why You Don't LIKE My FaceBook Fanpage ?
×
blogger